这个问题是使用TypeScript直接类比检查Class类型
我需要在运行时找出类型为any的变量实现接口.这是我的代码:
interface A{
member:string;
}
var a:any={member:"foobar"};
if(a instanceof A) alert(a.member);
Run Code Online (Sandbox Code Playgroud)
如果您在typescript playground中输入此代码,则最后一行将被标记为错误,"当前范围中不存在名称A".但事实并非如此,该名称确实存在于当前范围内.我甚至可以在var a:A={member:"foobar"};
没有编辑投诉的情况下将变量声明更改为.浏览网页并在SO上找到另一个问题后,我将界面更改为类,但后来我无法使用对象文字来创建实例.
我想知道A类型是如何消失的,但是看看生成的javascript解释了这个问题:
var a = {
member: "foobar"
};
if(a instanceof A) {
alert(a.member);
}
Run Code Online (Sandbox Code Playgroud)
A没有表示作为接口,因此不可能进行运行时类型检查.
我知道javascript作为一种动态语言没有接口的概念.有没有办法输入接口检查?
打字稿操场的自动完成显示打字稿甚至提供了一种方法implements
.我怎么用呢?