배열
배열 타입은 자바스크립트 Array
값의 타입을 나타내는데 쓰인다.
원소 타입 뒤에 대괄호([]
)를 붙여 표현한다.
const pibonacci: number[] = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55];
const myFavoriteBeers: string[] = ['Imperial Stout', 'India Pale Ale', 'Weizenbock'];
튜플
튜플 타입을 이용해 원소의 수와 각 원소의 타입이 정확히 지정된 배열의 타입을 정의할 수 있다.
const nameAndHeight: [string, number] = ['김지혜', 170]
튜플 타입 변수는 정확히 명시된 개수 만큼의 원소만을 가질 수 있다. 만약 타입 정의보다 더 많은, 혹은 더 적은 원소를 갖는 배열을 할당한다면 에러를 낸다.
**const invalidNameAndHeight: [string, number] = ['김지혜', 170, 53];
// error TS2322: Type '[string, number, boolean]' is not assignable to type '[string, number]'.
// Types of property 'length' are incompatible.
// Type '3' is not assignable to type '2'.**
다만 튜플 타입의 값을 Array
프로토타입의 메소드를 통해 조작하는 것은 금지되지 않는다는 점에 유의해야 한다. 예를 들어 아래와 같은 코드는 에러를 내지 않는다.
const validNameAndHeight: [string, number] = [**'김지혜', 170**];
validNameAndHeight.push(53); // no error