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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-15 03:33:12627ブラウズ

How to Perform Runtime Interface Type Checks in TypeScript?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。