0Pricing
TypeScript Academy · レッスン

高度な型の絞り込み

高度な型ガードと制御フロー解析を使って、複雑な型の条件を簡単に扱う方法を学びます。

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

高度な型の絞り込みの概要

高度な型の絞り込みの概要

高度な型の絞り込みを使うと、型ガード、制御フロー分析、カスタム型述語などの高度なテクニックによって、実行時に複雑な型をより具体的な型へ絞り込めます。

これらのツールにより、TypeScriptコードの安全性と予測可能性が高まります。

高度な型の絞り込み — イラスト1

型の絞り込みとは

型の絞り込みとは

型の絞り込みとは、実行時チェックを使って、より広い型(例:string | number)をより具体的な型へ絞り込むことです。

型の絞り込みに<code>typeof</code>を使用する

typeofを使った型の絞り込み

typeof演算子を使うと、プリミティブ型を絞り込めます。

function printValue(value: string | number): void {
  if (typeof value === 'string') {
    console.log(`String: ${value}`);
  } else {
    console.log(`Number: ${value}`);
  }
}

printValue('Hello'); // String: Hello
printValue(42); // Number: 42

型の絞り込みに<code>instanceof</code>を使用する

instanceofを使った型の絞り込み

instanceof演算子を使うと、クラスのインスタンスを絞り込めます。

class Dog {
  bark() {
    console.log('Woof!');
  }
}

class Cat {
  meow() {
    console.log('Meow!');
  }
}

function makeSound(animal: Dog | Cat): void {
  if (animal instanceof Dog) {
    animal.bark();
  } else {
    animal.meow();
  }
}

makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!

カスタム型ガードの使用

カスタム型ガードの使用

カスタム型ガード関数を作成すると、型をより正確に絞り込めます。

type Fish = { swim: () => void };
type Bird = { fly: () => void };

declare const animal: Fish | Bird;

function isFish(animal: Fish | Bird): animal is Fish {
  return (animal as Fish).swim !== undefined;
}

if (isFish(animal)) {
  animal.swim();
} else {
  animal.fly();

制御フロー分析

制御フロー分析

TypeScriptの制御フロー分析では、コードの論理的な流れに基づいて型が自動的に絞り込まれます。

function getLength(value: string | string[]): number {
  if (Array.isArray(value)) {
    return value.length;
  } else {
    return value.length;
  }
}

console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3

高度な型の絞り込みのメリット

高度な型の絞り込みのメリット

高度な型の絞り込みにより、コードを次のように改善できます。

  • 実行時エラーを減らせます。
  • コードがより安全になり、理解しやすくなります。
  • 型の扱いを正確に制御できます。

練習課題

練習課題

string | number型のパラメーターを受け取り、型ごとに異なるメッセージをログ出力する関数を作成してください。typeofを使ってロジックを実装しましょう。

おめでとうございます!

おめでとうございます!

TypeScriptで高度な型の絞り込みテクニックを使い、複雑な型を安全かつ効果的に絞り込んで扱う方法を学びました。これらのテクニックを練習して、コードの堅牢性と型安全性を高めましょう。

高度な型の絞り込み — イラスト10

よくある質問

「高度な型の絞り込み」レッスンは無料ですか?

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

「高度な型の絞り込み」で何を学びますか?

高度な型ガードと制御フロー解析を使って、複雑な型の条件を簡単に扱う方法を学びます。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「高度な型の絞り込み」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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