2013-03-18 109 views
1

如何初始化以下類中的數組成員。初始化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數組:

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

我想兩者都做:初始化和instanceof檢查(或typeof運算)

是怎樣的JavaScript數組不同Typescript中的數組(由'[''表示))

+0

要回答*如何JavaScript的數組從打字稿數組不同(由「[]」代表)?*,它們應該是等效的:http://typescript.codeplex.com/workitem/812 – basarat

回答

3
map: number[]; 

是正確的語法。

有幾個原因不使用instacenof數組。在這裏看到:Check if object is array?

如果你想使用instanceof,你必須轉換左操作,如:

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