捕捉したErrorのナローイング(unknownとError)
unknown型として扱われる捕捉済みエラーを安全に処理します。
「捕捉したErrorのナローイング(unknownとError)」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。
ようこそ
TS 4.0での変更
// err is now: unknown
try { doSomething(); }
catch (err) {
// err.message; // Error — cannot access on unknown
}instanceofによる絞り込み
catch (err) {
if (err instanceof Error) {
console.error(err.message, err.stack);
} else {
console.error('Unknown error:', String(err));
}
}isError型ガード
function isError(e: unknown): e is Error {
return e instanceof Error;
}
catch (e) {
if (isError(e)) console.error(e.message);
}カスタムエラーの絞り込み
catch (err) {
if (err instanceof NetworkError) { /* retry */ }
else if (err instanceof AuthError) { /* redirect */ }
else if (err instanceof Error) { /* generic */ }
else throw err;
}useUnknownInCatchVariables
{ "compilerOptions": { "useUnknownInCatchVariables": true } }文字列エラー
catch (err) {
const message = err instanceof Error ? err.message : String(err);
console.error(message);
}型付きthrowヘルパー
function throwErr(msg: string, code = 500): never {
const e: AppError = Object.assign(new Error(msg), { statusCode: code });
throw e;
}unknownエラーの再スロー
catch (err) {
if (err instanceof KnownError) handle(err);
else throw err; // propagate unknowns
}Reactのエラーバウンダリー
componentDidCatch(error: unknown, info: ErrorInfo) {
if (error instanceof Error) logError(error.message);
}catchしたエラーのテスト
test('catches errors', async () => {
jest.spyOn(api, 'fetch').mockRejectedValue(new NetworkError());
const result = await safeRun();
expect(result.ok).toBe(false);
});確認問題
まとめ
よくある質問
「捕捉したErrorのナローイング(unknownとError)」レッスンは無料ですか?
はい。「捕捉したErrorのナローイング(unknownとError)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。
「捕捉したErrorのナローイング(unknownとError)」で何を学びますか?
unknown型として扱われる捕捉済みエラーを安全に処理します。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「捕捉したErrorのナローイング(unknownとError)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 型付きErrorクラスと階層
- Resultパターン:OkとErr
- 捕捉したErrorのナローイング(unknownとError)
- 非同期TypeScriptコードのエラーハンドリング