0Pricing
TypeScript Academy · レッスン

Union型とIntersection型

複数の型を組み合わせて扱います

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

ユニオン型とインターセクション型

ユニオン型とインターセクション型

次のレッスンへようこそ!このレッスンでは、ユニオン型を使って変数に複数の候補となる型を指定する方法と、インターセクション型を使って複数の型を1つに組み合わせる方法を学びます。これらは、柔軟で堅牢なコードを作成するための強力なツールです。それでは始めましょう!

Union型とIntersection型 — イラスト1

ユニオン型とは

ユニオン型とは

ユニオン型を使うと、変数に複数の型の値を格納できます。|記号を使ってユニオン型を定義できます。

例: string または number のどちらかを格納できる変数:

課題: ユニオン型の変数を宣言し、異なる値を代入してください。

let value: string | number;
value = "Hello";
console.log(value); // Output: "Hello"

value = 42;
console.log(value); // Output: 42

関数でユニオン型を使う

関数でユニオン型を使う

関数のパラメーターにユニオン型を使うと、複数の入力型に対応できます。例:

課題: ユニオン型のパラメーターを受け取り、その値を console に出力する関数を作成してください。

function printValue(value: string | number): void {
  console.log(`The value is ${value}`);
}

printValue("Hello"); // Output: The value is Hello
printValue(100); // Output: The value is 100

インターセクション型とは

インターセクション型とは

インターセクション型は、複数の型を1つに組み合わせます。&記号を使ってインターセクション型を定義できます。

例: 2つのオブジェクト型を組み合わせる:

課題: 2つのオブジェクトを組み合わせるインターセクション型を作成し、使用してください。

type Person = { name: string };
type Employee = { employeeId: number };

type Staff = Person & Employee;

let staffMember: Staff = {
  name: "Alice",
  employeeId: 123,
};

console.log(staffMember);

ユニオン型で型ガードを使う

ユニオン型で型ガードを使う

TypeScriptは、ユニオン型でどの型を使用しているかを判断できません。型ガードを使って型を絞り込めます。例:

課題: 型ガードを使って、ユニオン型に含まれる異なる型を処理してください。

function display(value: string | number): void {
  if (typeof value === "string") {
    console.log(`String value: ${value.toUpperCase()}`);
  } else {
    console.log(`Number value: ${value * 2}`);
  }
}

display("Hello"); // Output: String value: HELLO
display(5); // Output: Number value: 10

インターセクション型の実践

インターセクション型の実践

インターセクション型は、共通のプロパティを持つオブジェクトを扱うときに便利です。例:

課題: admin と user のロール用のインターセクション型を作成してください。

type Admin = { adminLevel: string };
type User = { username: string };

type AdminUser = Admin & User;

let admin: AdminUser = {
  adminLevel: "super",
  username: "admin123",
};

console.log(`Admin ${admin.username} has level ${admin.adminLevel}`);

ユニオン型とインターセクション型でよくあるミス

ユニオン型とインターセクション型でよくあるミス

よくあるミスを確認しましょう。

  • ユニオン型を使っているのに、考えられるすべてのケースを処理していない(型ガードを使い忘れるなど)。
  • 不要なインターセクションを使って、型を複雑にしすぎる。
  • ユニオン型またはインターセクション型に、互換性のない値を代入する。

ヒント: 型が想定どおりに機能することを確認するため、必ずコードをテストしてください!

ユニオン型とインターセクション型を使う場面

ユニオン型とインターセクション型を使う場面

次のような場合はユニオン型を使います。

  • 変数に、複数の候補となる型のいずれかを指定できる場合。
  • 関数のパラメーターに柔軟性が必要な場合。

次のような場合はインターセクション型を使います。

  • 複数のオブジェクトや型を1つに組み合わせる場合。
  • 特定の用途に合わせて、より複雑な型を作成する場合。
type A = { x: number };
type B = { y: number };

type AB = A & B;

let obj: AB = { x: 5, y: 10 };

よくできました!

よくできました!

おめでとうございます!TypeScriptでユニオン型とインターセクション型を使って、複雑な状況に対応する方法を学びました。これらのツールを使うと、コードをより柔軟で表現力の高いものにできます。次のレッスンでは、enumと、定数値の管理に役立つ仕組みについて学びます。引き続きコーディングしていきましょう!

Union型とIntersection型 — イラスト10

よくある質問

「Union型とIntersection型」レッスンは無料ですか?

はい。「Union型とIntersection型」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。

「Union型とIntersection型」で何を学びますか?

複数の型を組み合わせて扱います ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

TypeScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Union型とIntersection型」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTypeScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. 配列とタプル
  2. Union型とIntersection型
  3. 列挙型
  4. リテラル型
← TypeScript Academyに戻る