在 Typescript 中初始化数组成员
2013-03-18
2475
如何在以下类中初始化数组成员。
class EventObject {
map:Array;
constructor() {
this.map = []; // error :Cannot convert 'any[]' to 'Array'
this.map = new Array(); // error :Cannot convert 'any[]' to 'Array'
};
}
var obj = new EventObject();
console.log(obj.map[0]);
此外,如果我将类型更改为 number[] ,我能够初始化它。但是,当我检查它是否是 instanceof 数组时,出现错误:
class EventObject {
map:number[];
constructor() {
this.map = [];
if(this.map instanceof Array) //error here
alert("Type checking");
};
}
我想同时执行:初始化和检查 instanceof (或 typeof)
Javascript 数组与 Typescript 中的数组(由 '[]' 表示)有何不同 ?
1个回答
map: number[];
是正确的语法。
有几个理由不使用 instacenof Array。请参阅此处: 检查对象是否为数组?
如果要使用 instanceof,则必须强制转换左运算符,如下所示:
var m: number[];
if (<any>m instanceof Array) {
}
Joseph Lennox
2013-03-18