条件型
条件型によって条件に応じて動的に変化する型を作成し、柔軟で再利用可能な型定義を実現する方法を学びます。
「条件型」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全3レッスンが含まれています。
条件型入門
条件型入門
TypeScriptの条件型を使うと、条件に応じて動的に適応する型を作成できるため、コードの柔軟性と再利用性を高められます。
条件型では、JavaScriptの条件(ternary)演算子に似た構文を使用します。

条件型とは
条件型とは
条件型を使うと、別の型に応じて決まる型を定義できます。基本的な構文は次のとおりです。
T extends U ? X : Y
これは、T が U を拡張する場合は型が X になり、それ以外の場合は Y になるという意味です。
条件型の基本例
条件型の基本例
簡単な例を見てみましょう。
type IsString<T> = T extends string ? 'Yes' : 'No';
// Test cases
type A = IsString<string>; // 'Yes'
type B = IsString<number>; // 'No'関数オーバーロードで条件型を使う
関数オーバーロードで条件型を使う
条件型を使うと、戻り値の型を動的に決定して、関数オーバーロードを簡略化できます。
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
function getData(): string {
return 'Hello';
}
type DataType = ReturnType<typeof getData>; // string分配条件型
分配条件型
条件型をユニオン型に適用すると、ユニオンの各メンバーに対して分配されます。
type ToArray<T> = T extends any ? T[] : never;
type A = ToArray<string | number>;
// A = string[] | number[]条件型とマップ型の組み合わせ
条件型とマップ型の組み合わせ
条件型とマップ型を組み合わせると、強力な型変換を実現できます。
type User = {
id: number;
name: string;
isAdmin?: boolean;
};
type MakeRequired<T> = {
[K in keyof T]-?: T[K] extends undefined ? never : T[K];
};
type RequiredUser = MakeRequired<User>;
// { id: number; name: string; isAdmin: never; }条件型の一般的なユースケース
条件型の一般的なユースケース
条件型は、主に次の用途で使用されます。
- 戻り値やパラメーターの型を推論する。
- ユニオン型やインターセクション型を変換する。
Exclude、Extract、NonNullableなどのユーティリティ型を作成する。
練習課題
練習課題
型が配列かどうかを判定し、配列の場合は要素の型を返し、それ以外の場合はその型自体を返す条件型を作成してください。
おめでとうございます!
おめでとうございます!
条件型を使って、TypeScriptで動的かつ再利用可能な型定義を作成する方法を学びました。これらの概念を練習して、より強力で柔軟なTypeScriptコードを書きましょう!

よくある質問
「条件型」レッスンは無料ですか?
はい。「条件型」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全3レッスンが含まれています。
「条件型」で何を学びますか?
条件型によって条件に応じて動的に変化する型を作成し、柔軟で再利用可能な型定義を実現する方法を学びます。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「条件型」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。