2013-03-18 6 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를 확인 (또는 대해서 typeof) :

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

나는 모두를 수행 할 : 나는 그것의 인스턴스 배열인지 확인 때 다음 오류가 발생합니다 Typescript의 배열 ('[]'로 표시)?

+0

에 대답하기 위해 * 타이프의 배열에서 다른 자바 스크립트 배열 ('[]'로 표현되는 방법)? *, 그들은 동등해야합니다 : http://typescript.codeplex.com/workitem/812 – basarat

답변

3
map: number[]; 

올바른 구문입니다.

instacenof Array를 사용하지 않는 데에는 몇 가지 이유가 있습니다. 여기를 참조하십시오 : Check if object is array?

당신이 instanceof를 사용하려는 경우, 당신은 같은 왼쪽 연산자를 캐스팅해야합니다

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