ホームページ > ウェブフロントエンド > jsチュートリアル > TypeScript でインターフェイスのランタイム型チェックを実現するにはどうすればよいですか?

TypeScript でインターフェイスのランタイム型チェックを実現するにはどうすればよいですか?

DDD
リリース: 2024-11-17 13:24:01
オリジナル
667 人が閲覧しました

How to Achieve Runtime Type Checking for Interfaces in 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート