배열 타입 (Array Types)
TypeScript에서는 배열의 모든 요소가 동일한 타입을 갖도록 명시할 수 있다.
이를 통해 배열 내부 요소의 타입 안정성을 보장한다.
배열 타입은 두 가지 방식으로 정의할 수 있다.
1. type[]
어노테이션 사용
ts
let numbers: number[] = [1, 2, 3, 4];
let strings: string[] = ["hello", "world"];
2. Array<type>
제네릭 타입 사용
ts
let numbers: Array<number> = [1, 2, 3, 4];
let strings: Array<string> = ["hello", "world"];
💡 두 방법은 완전히 동일하게 동작한다.
보통 간결함 때문에 type[]
표기법을 더 자주 사용한다.
다차원 배열
배열 안에 배열을 담는 경우, 차원을 늘려서 타입을 정의한다.
ts
let matrix: number[][] = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
혼합 타입 배열 (Union Types)
여러 타입을 허용하려면 유니온 타입을 사용한다.
ts
let mixedArray: (number | string)[] = [1, "two", 3, "four"];
|
기호는 유니온 타입을 의미한다.- 이 경우
mixedArray
는number
또는string
타입 요소를 모두 가질 수 있다.
배열 메서드와 타입 추론
TypeScript는 배열 메서드를 사용할 때 자동으로 타입을 추론한다.
ts
let numbers: number[] = [1, 2, 3, 4];
let firstNumber = numbers[0]; // number
let numberCount = numbers.length; // number
numbers.push(5); // 가능
numbers.push("six"); // error (string은 number[]에 추가 불가)
numbers[0]
→ 타입 추론 결과 numbernumbers.length
→ 항상 numberpush
메서드는 배열 타입에 맞는 값만 허용