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 应用程序的健壮性。
以上是如何在 TypeScript 中执行运行时接口类型检查?的详细内容。更多信息请关注PHP中文网其他相关文章!