var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true
trace(mySprite is DisplayObject);// true
trace(mySprite is IEventDispatcher); // true
instanceof
运算符要求左操作数的类型为Any、对象类型或类型参数类型,右操作数的类型为Any或“function”接口类型的子类型。结果总是布尔基元类型的。
所以你可以用
mySprite instanceof Sprite;
请注意,此操作符也在ActionScript中,但不应再在ActionScript中使用:
is运算符是ActionScript3.0的新选项,它允许您测试变量或表达式是否是给定数据类型的成员。在ActionScript的早期版本中,instanceof运算符提供了此功能,但在ActionScript3.0中,instanceof运算符不应用于测试数据类型成员资格。应该使用is运算符而不是instanceof运算符进行手动类型检查,因为表达式x instanceof y只是检查x的原型链是否存在y(并且在ActionScript 3.0中,原型链并不提供继承层次结构的完整图片)。
TypeScript的instanceof
也存在同样的问题。由于这是一种仍在发展中的语言,我建议你提出一个关于这种设施的建议。
另见:
这个问题直接类似于使用TypeScript进行类类型检查
你能告诉我如何在typescript+angular中检查变量的类型吗?
编辑:OK,在typescript规范中有详细说明:类型断言
数字(number) 字符串(string) 数组(array) 元组(tuple) 任意值(any) null 和 undefined void never 其中元组、枚举、任意值、void和never类型是 TypeScript 特有的。 元组类型 元组类型用于表示已知元素类型和数量的数组,各类型不必相同。 枚举类型 枚举值默认从 0 开始,往后逐个加 1(递增);也就是说,week 中的 M
TypeScript中的这些语句(与)之间有什么区别?
我想解决的是res.Code下面的红线问题 下面是loginApi接口的类型定义: 其中UserType类型的定义: IResponse类型的定义: 为什么Promise的返回值Code,Data,Msg下面都带红线? 代码: