양식의 배열이 있습니다. [ 1, "message" ]
있습니다.
TypeScript에서 이것을 어떻게 정의합니까?
답변
TypeScript에서 여러 유형으로 배열 정의
공용체 유형 (string|number)[]
데모를 사용하십시오 .
const foo: (string|number)[] = [ 1, "message" ];
[1, “message”] 형식의 배열이 있습니다.
항상 두 개의 요소 만 있다고 확신 [number, string]
하면 튜플로 선언 할 수 있습니다.
const foo: [number, string] = [ 1, "message" ];
답변
튜플로 취급하는 경우 ( 언어 사양의 3.3.3 섹션 참조 ) 다음을 수행하십시오.
var t:[number, string] = [1, "message"]
또는
interface NumberStringTuple extends Array<string|number>{0:number; 1:string}
var t:NumberStringTuple = [1, "message"];
답변
내 TS 보푸라기가 다른 솔루션에 대해 불평하고 있었기 때문에 나를 위해 일한 솔루션은 다음과 같습니다.
item: Array<Type1 | Type2>
유형이 하나뿐이면 다음을 사용하는 것이 좋습니다.
item: Type1[]
답변
여러 유형의 항목을 가질 수있는 배열을 입력하기 위해 다음 형식으로 정했습니다.
Array<ItemType1 | ItemType2 | ItemType3>
이것은 테스트 및 타입 가드와 잘 작동합니다. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
이 형식은 테스트 또는 타입 가드에서 잘 작동하지 않습니다.
(ItemType1 | ItemType2 | ItemType3)[]
답변
이 버전을 사용하고 있습니다.
exampleArr: Array<{ id: number, msg: string}> = [
{ id: 1, msg: 'message'},
{ id: 2, msg: 'message2'}
]
다른 제안과 약간 비슷하지만 여전히 쉽고 기억하기 쉽습니다.