在Typescript中初始化Array成员

时间:2013-03-18 16:13:09

标签: typescript

如何在以下类中初始化数组成员。

   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中的数组有何不同(由'[]'表示)

1 个答案:

答案 0 :(得分:3)

map: number[];

语法是否正确。

有几个原因没有使用instacenof Array。见这里:Check if object is array?

如果要使用instanceof,则必须将左侧运算符强制转换为:

var m: number[];
if (<any>m instanceof Array) {
}