开发者问题收集

在 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