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 Array は、Typescript の配列 (「[]」で表される) とどう違うのですか?

4

1 に答える 1

3
map: number[];

正しい構文です。

instacenof Array を使用しない理由はいくつかあります。ここを参照してください:オブジェクトが配列かどうかを確認しますか?

instanceof を使用する場合は、左の演算子を次のようにキャストする必要があります。

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