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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- typeof、等価性、truthinessによる絞り込み
- in、instanceof、判別可能なunion
- neverによる網羅性チェック(入門)