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

DDD
リリース: 2024-11-23 08:28:30
オリジナル
281 人が閲覧しました

How to Perform Runtime Type Checking for Interfaces in TypeScript?

TypeScript を使用したインターフェイスの型チェック

質問

JavaScript にはインターフェイスの概念がないことを考慮すると、TypeScript でインターフェイスの実行時型チェックをどのように実行できますか? ?

回答

ただし、instanceof は使用できませんTypeScript のインターフェイスでは、カスタムのタイプ ガードを作成して目的の動作を実現できます:

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート