0Pricing
TypeScript Academy · レッスン

typeof、等価性、truthinessによる絞り込み

typeof、厳密等価、truthinessを使い、安全でないキャストなしにunion型を絞り込みます

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

導入

目標:typeof、厳密等価、truthinessを使って、広いユニオン型を正確な型へ絞り込む方法を学びます。これにより、プロパティやメソッドへ安全にアクセスできるようになります。

typeofによる絞り込み

typeofはプリミティブ(string、number、boolean、bigint、symbol、undefined)を絞り込みます。安全に分岐するために使用してください。

function printLen(x: string | number) {
  if (typeof x === "string") {
    console.log(x.length); // x is string
  } else {
    console.log(x.toFixed(2)); // x is number
  }
}

printLen("TS");
printLen(3.14);

厳密等価

正確に絞り込むには===/!==を優先してください。値を暗黙に変換して人間にもコンパイラーにもわかりにくくする==は避けましょう。

function greet(x: string | null) {
  if (x !== null) {
    // x is string here
    console.log("Hello " + x.toUpperCase());
  } else {
    console.log("No name");
  }
}

greet("Ada");
greet(null);

truthinessによる絞り込み

truthinessでも絞り込めますが、注意が必要です。""や0は有効な値であってもfalsyとして扱われます。これらを区別する必要がある場合は、厳密なチェックを使用してください。

function show(v: string | 0 | "" | null | undefined) {
  if (v) {
    // v is string here (non-empty)
    console.log("value:", v);
  } else {
    // v is "", 0, null, or undefined
    console.log("empty");
  }
}

show("ok");
show("");
show(0);

チェックの組み合わせ

チェックを組み合わせて、入れ子になったアクセスを保護します。より細かく制御するには、0や「」が有効なケースでu !== null && u !== undefinedのような明示的なチェックを優先してください。

type MaybeUser = { name: string } | null | undefined;

function hi(u: MaybeUser) {
  if (u && u.name) {
    console.log("Hi " + u.name);
  } else {
    console.log("No user");
  }
}

hi({ name: "Lin" });
hi(null);

ガイドライン

ガイドライン:

  • プリミティブにはtypeofを使用します。
  • 値の暗黙変換を避けるには===/!==を使用します。
  • truthinessは簡潔ですが、空文字列や0が意味を持つ場合は避けてください。

絞り込みの確認

確認問題:値をstring型に正しく絞り込めるチェックはどれですか?

まとめ

まとめ:typeof、厳密等価、truthinessを使って型を絞り込みます。0や「」が有効な値の場合は、明示的なチェックを優先してください。

よくある質問

「typeof、等価性、truthinessによる絞り込み」レッスンは無料ですか?

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

「typeof、等価性、truthinessによる絞り込み」で何を学びますか?

typeof、厳密等価、truthinessを使い、安全でないキャストなしにunion型を絞り込みます ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「typeof、等価性、truthinessによる絞り込み」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. typeof、等価性、truthinessによる絞り込み
  2. in、instanceof、判別可能なunion
  3. neverによる網羅性チェック(入門)
← TypeScript Academyに戻る