考虑到 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中文网其他相关文章!