如何在以下类中初始化数组成员。
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]);
此外,如果我将类型更改为数字[],我可以初始化它。但是,当我检查它是否是一个instanceof Array时,我收到一个错误:
class EventObject {
map:number[];
constructor() {
this.map = [];
if(this.map instanceof Array) //error here
alert("Type checking");
};
}
我想做两件事:初始化并检查instanceof(或typeof)
Javascript数组与Typescript中的数组有何不同(由'[]'表示)?
答案 0 :(得分:3)
map: number[];
语法是否正确。
有几个原因没有使用instacenof Array。见这里:Check if object is array?
如果要使用instanceof,则必须将左侧运算符强制转换为:
var m: number[];
if (<any>m instanceof Array) {
}