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 キーワードを必要とせずにインターフェイス コンプライアンスの実行時検証が可能になります。
複数のメンバーをチェックする必要がある状況では、 discriminator プロパティを導入できます。このアプローチでは、競合を避けるために独自の識別子を管理し、一意性を確保する必要があります。
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 アプリケーションの堅牢性が強化されます。
以上がTypeScript でランタイム インターフェイスの型チェックを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。