0Pricing
TypeScript Academy · レッスン

条件型

条件型によって条件に応じて動的に変化する型を作成し、柔軟で再利用可能な型定義を実現する方法を学びます。

「条件型」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全3レッスンが含まれています。

条件型入門

条件型入門

TypeScriptの条件型を使うと、条件に応じて動的に適応する型を作成できるため、コードの柔軟性と再利用性を高められます。

条件型では、JavaScriptの条件(ternary)演算子に似た構文を使用します。

条件型 — イラスト1

条件型とは

条件型とは

条件型を使うと、別の型に応じて決まる型を定義できます。基本的な構文は次のとおりです。

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コードを書きましょう!

条件型 — イラスト10

よくある質問

「条件型」レッスンは無料ですか?

はい。「条件型」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 高度な型の絞り込み
  2. 高度なクラス機能
  3. 条件型
← TypeScript Academyに戻る