TypeScript は堅牢な型システムを提供しますが、特定の型 (any、unknown、never) は混乱を招く可能性があります。理解を深めるために、これらを分解してみましょう。
any タイプは 3 つの中で最も単純です。基本的に型チェックを無効にし、変数が任意の型の値を保持できるようにします。例えば:
let value: any; value = 42; // number value = "Hello"; // string value = [1, 2, 3]; // array value = () => {}; // function value = { key: "val" }; // object value = new Date(); // date
これらすべての場合において、TypeScript はエラーを発生させず、型制約なしで変数に対してあらゆる操作を実行できます。これは、JavaScript プロジェクトを TypeScript に移行するときに役立ちます。ただし、any に依存すると型安全性の利点が無効になるため、ほとんどの場合、適切な選択とは言えません。代わりに、unknown.
の使用を検討してください。不明な型は、操作を実行する前に型チェックが必要なため、どの型よりも安全です。これはすべての可能な値のセットを表しますが、型安全性が適用されます。
let value: unknown; value = 42; value = "Hello"; // To perform operations, we need to narrow down the type if (typeof value === "number") { console.log(value 1); // TypeScript knows value is a number here }
unknown を使用すると、操作を続行する前に型チェックが強制されるため、ロギング関数など、あらゆる種類の入力を受け入れる関数にとって有益です。
never 型は空の値のセットを表し、何かが決して発生してはならないことを示します。 Never 型には値を割り当てることができないため、徹底的なチェックや到達不能なコードの表現に役立ちます。
type User = { type: "admin" } | { type: "standard" }; function handleUser(user: User) { switch (user.type) { case "admin": // handle admin break; case "standard": // handle standard break; default: const _exhaustiveCheck: never = user; // This ensures all cases are handled } }
新しいユーザー タイプが追加されると、TypeScript はエラーを発生させ、すべてのケースに確実に対処できるようにするため、コード内の徹底的なチェックを維持する上で非常に貴重なものになります。
あらゆる、未知の、そして決して TypeScript のタイプ セーフを強化するものを理解することはできません。安全な型チェックのためには、any は慎重に使用し、unknown を優先し、徹底的なチェックや到達不能なコードには決して使用しないでください。これらの型を正しく使用すると、TypeScript は信頼性の高いアプリケーションを構築するための強力なツールになります。
コーディングを楽しんでください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3