Promise<T>とasync/awaitの型付け
Promise の形を理解し、async関数に型を付け、awaitした値を安全に扱います
「Promise<T>とasync/awaitの型付け」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全3レッスンが含まれています。
はじめに
目標: Promise<T>ベースのコードを読み書きします。非同期関数に型を付け、awaitで値を待機し、エラーの型を維持します。
Promiseの基本
Promise<T>は、後で得られる値をラップします。値が解決されない場合はPromiseを使います。
function delay(ms: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms));
}
const p: Promise<void> = delay(100);
p.then(() => console.log("done"));asyncの戻り値の型付け
async関数は常にPromise<U>を返します。関数本体はUを返し、TSが自動的にラップします。
async function fetchNumber(): Promise<number> {
await delay(10);
return 42; // inferred as Promise<number>
}
fetchNumber().then(n => console.log(n.toFixed(0)));awaitの型付け
awaitはPromiseを展開して内部の型(ここではstring)を返すため、正しいIntelliSenseが得られます。
async function readUserName(id: number): Promise<string> {
await delay(5);
return `user-${id}`;
}
async function main(): Promise<void> {
const name = await readUserName(7); // name: string
console.log(name.toUpperCase());
}
main();Promise.allの型付け
Promise.allはタプルの型と順序を保持します。各要素は内部の型まで自動的にawaitされます。
async function both() {
const [n, s] = await Promise.all([
fetchNumber(),
readUserName(1),
]);
console.log(n, s);
}
both();エラーの型付け
catchではunknownを優先します。フィールドにアクセスする前に、instanceof Error(またはカスタムチェック)で型を絞り込みます。
async function safe() {
try {
await delay(1);
throw new Error("boom");
} catch (e: unknown) {
if (e instanceof Error) {
console.error("Handled:", e.message);
} else {
console.error("Unknown error", e);
}
}
}
safe();非同期関数の戻り値の型の確認
簡単な確認: 型Uの値を返す非同期関数の戻り値の型は何でしょうか?
まとめ
まとめ: Promise<T>は後で得られる値をラップし、async関数はPromise<U>を返し、awaitは型を展開します。また、catch内のエラーは最初にunknownとして扱います。
よくある質問
「Promise<T>とasync/awaitの型付け」レッスンは無料ですか?
はい。「Promise<T>とasync/awaitの型付け」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全3レッスンが含まれています。
「Promise<T>とasync/awaitの型付け」で何を学びますか?
Promise の形を理解し、async関数に型を付け、awaitした値を安全に扱います ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「Promise<T>とasync/awaitの型付け」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Promise とasync/awaitの型付け
- エラーの型付け(unknown)、catchでの絞り込み
- 並行処理パターン(all/settled/race)の型