TypeScript でのインターフェイスの型チェック
TypeScript 内では、実行時にオブジェクトが事前定義されたインターフェイスに準拠しているかどうかを判断することが重要になるシナリオに遭遇することがあります。 。 instanceof キーワードを利用したクラス型チェックは簡単ですが、これをインターフェイスに適用すると課題が生じます。
instanceof 演算子に依存するなどの従来のアプローチは、コンパイルされた JavaScript でインターフェイスが個別の型として表現されていないため、効果がないことが判明しています。代わりに、カスタム タイプ ガードが解決策を提供します。
interface A { member: string; } function instanceOfA(object: any): object is A { return 'member' in object; } var a: any = { member: "foobar" }; if (instanceOfA(a)) { alert(a.member); }
このアプローチにより、instanceof キーワードを必要とせずにインターフェイスの準拠性を実行時に検証できます。
複数のメンバーをチェックする必要がある状況では、識別子プロパティを導入できます。このアプローチでは、独自の識別子を管理し、競合を避けるために一意性を確保する必要があります。
interface A { discriminator: 'I-AM-A'; member: string; } function instanceOfA(object: any): object is A { return object.discriminator === 'I-AM-A'; } var a: any = { discriminator: 'I-AM-A', member: "foobar" }; if (instanceOfA(a)) { alert(a.member); }
カスタムの型ガードまたは識別子を採用すると、実行時にインターフェイスの型チェックを効果的に実行でき、TypeScript アプリケーションの堅牢性が強化されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3