首页  >  文章  >  web前端  >  如何在TypeScript中实现接口的运行时类型检查?

如何在TypeScript中实现接口的运行时类型检查?

DDD
DDD原创
2024-11-17 13:24:01603浏览

How to Achieve Runtime Type Checking for Interfaces in TypeScript?

TypeScript 中的接口类型检查

在 TypeScript 中,接口定义对象可以遵循的契约,但它们不会在运行时强制执行它们。这意味着使用instanceof检查变量是否实现接口将会失败。

要实现接口的运行时类型检查,可以使用自定义类型保护。这些函数接受一个对象作为参数并返回一个布尔值,指示它是否实现了所需的接口:

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn