1

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

   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 Array 时出现错误:

class EventObject {
            map:number[];
            constructor() {
                this.map = [];
                if(this.map instanceof Array)  //error here
                    alert("Type checking");
            };
}

我想同时做:初始化和检查 instanceof(或 typeof)

Javascript 数组与 Typescript 中的数组(由 '[]' 表示)有何不同?

4

1 回答 1

3
map: number[];

是正确的语法。

不使用 instacenof Array 有几个原因。请参见此处:检查对象是否为数组?

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

var m: number[];
if (<any>m instanceof Array) {
}
于 2013-03-18T16:33:41.843 回答