首页 >web前端 >js教程 >如何在 TypeScript 中执行运行时接口类型检查?

如何在 TypeScript 中执行运行时接口类型检查?

Susan Sarandon
Susan Sarandon原创
2024-11-16 16:52:03715浏览

How to Perform Runtime Interface Type Checking in TypeScript?

TypeScript 中的接口类型检查

在 TypeScript 中,当尝试验证类型为 any 的变量是否遵循以下条件时,会出现一个常见的困境运行时指定的接口。考虑以下代码:

interface A {
    member: string;
}

var a: any = { member: "foobar" };

if (a instanceof A) alert(a.member);

这里,TypeScript Playground 在最后一行生成一个错误,声称名称 A 在当前作用域中未定义。然而,这是不正确的,因为 A 已明确定义。要解决此问题,重要的是要了解接口在生成的 JavaScript 中没有表示形式,从而无法进行运行时类型检查。

这种困境源于 JavaScript 的动态特性,其中接口没有定义的存在。因此,问题出现了:有没有一种方法可以对 TypeScript 中的接口进行类型检查?

playground 的自动完成功能确实揭示了一个名为 Implements 的方法,让我们想知道如何使用它。这就是自定义类型防护发挥作用的地方:

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。但是,对于更复杂的情况,请考虑使用判别器来管理您自己的判别器并确保不会发生重复。

以上是如何在 TypeScript 中执行运行时接口类型检查?的详细内容。更多信息请关注PHP中文网其他相关文章!

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