我有一个奇怪的问题,很明显我的错误是关于在Typescript中实例化类的理解。
在我的代码中我写了
let res:Array<MyClass>=[];
......
console.log(res[0] instanceof MyClass)
console.log()中的表达式返回一个false值,为什么?
第二个问题,是否可以做类似
res instanceof Array<MyClass>
我甚至尝试以这种方式检查类型
typeof res[0]==="MyClass"
还是同样的问题,总是弄错
答案 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。