ホームページ >ウェブフロントエンド >jsチュートリアル >TypeScript でインターフェイスのランタイム型チェックを実現するにはどうすればよいですか?
TypeScript でのインターフェイスの型チェック
TypeScript では、インターフェイスはオブジェクトが従うことができるコントラクトを定義しますが、実行時にその実装を強制しません。これは、instanceof を使用して変数がインターフェイスを実装しているかどうかをチェックすると失敗することを意味します。
インターフェイスの実行時型チェックを実現するには、カスタム型ガードを使用できます。これらは、オブジェクトを引数として受け取り、目的のインターフェイスを実装しているかどうかを示すブール値を返す関数です:
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); }
多数のメンバーを持つインターフェイスの場合、識別子プロパティを追加できます:
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 でインターフェイスのランタイム型チェックを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。