我的类的打字稿实例被评估为任何

时间:2016-07-26 09:06:44

标签: typescript

我有一个奇怪的问题,很明显我的错误是关于在Typescript中实例化类的理解。
在我的代码中我写了

let res:Array<MyClass>=[];
    ......    
console.log(res[0] instanceof MyClass)

console.log()中的表达式返回一个false值,为什么?
第二个问题,是否可以做类似

的事情
res instanceof Array<MyClass>

更新

我甚至尝试以这种方式检查类型

typeof res[0]==="MyClass"

还是同样的问题,总是弄错

1 个答案:

答案 0 :(得分:2)

如果是空数组,可能会发生这种情况:

class MyClass {

}

let res: Array<MyClass> = [];

console.log(res[0]);
console.log(res[0] instanceof MyClass); // false because res is empty and res[0] is undefined

res.push(new MyClass());

console.log(res[0]);
console.log(res[0] instanceof MyClass); // true

我已经创建了相应的jsfiddle