「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > TypeScript でランタイム インターフェイスの型チェックを実行するにはどうすればよいですか?

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

2024 年 12 月 23 日に公開
ブラウズ:861

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 キーワードを必要とせずにインターフェイスの準拠性を実行時に検証できます。

複数のメンバーをチェックする必要がある状況では、識別子プロパティを導入できます。このアプローチでは、独自の識別子を管理し、競合を避けるために一意性を確保する必要があります。

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 アプリケーションの堅牢性が強化されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3