3

'[오브젝트]'를 입력 할 양도 할 수 없습니다 :오류 TS2322 : 유형 '객체 []'나는 이런 코드가

export class TagCloud { 

    tags: [Tag]; 
    locations: [Location]; 

    constructor() { 
     this.tags = new Array<Tag>(); 
     this.locations = new Array<Location>(); 
    } 
} 

을하지만이 나에게 다음과 같은 오류가 있습니다 :

오류 TS2322 : '태그 []'유형을 '[태그]'유형에 지정할 수 없습니다. '태그 []'유형에 '0'속성이 없습니다.

오류 TS2322 : 유형 '[Lo 양]]에'위치 [] '을 할당 할 수 없습니다. 'Location []'유형에 '0'속성이 없습니다.

무엇이 잘못 되었습니까 (코드는 작동합니까?).

es6-shim 유형 설명 (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/es6-shim)과 함께 타이핑을 사용하고 있습니다.

답변

5

당신이 중 하나를 수행합니다

let a: Array<number>; 

또는

let a: number[]; 

당신이 사용하는 경우 :

let a: [number]; 

당신은 a tuple를 선언 사실에있다 , 길이가 1 인이 경우 i 번째 번호.
이것은 또 다른 튜플 :

let a: [number, string, string]; 

당신이 배열의 길이는 tagslocations은 0이다에 할당하고, 그것이 있어야하기 때문에이 오류가 얻을 이유 1.

0

Tag[]을 사용하여 TypeScript에 Tag의 배열을 선언하고 싶습니다. 당신이 배열을 선언 타이프에서

export class TagCloud { 

    tags: Tag[]; 
    locations: Location[]; 

    constructor() { 
     // TS already knows the type 
     this.tags = [] 
     this.locations =[] 
    } 
}