배열의 타입을 정의할 때는 배열 요소의 타입에 []를 붙여서 정의한다.
// 배열
let numArr: number[] = [1, 2, 3] // number 배열
let strArr: string[] = ["Hello", "World"] // string 배열
let boolArr: boolean[] = [true, false] // boolean 배열
만약 배열의 요소가 한 가지의 타입만 있는 것이 아니라 여러 타입의 요소가 들어있다면 유니온 타입(|)으로 묶어주면 된다.
let multiArr: (number | string)[] = [1, "Hello"] // number, string 배열
다차원 배열의 경우에는 아래와 같이 []를 한번 더 묶어주면 된다.
let dobuleArr: number[][] = [
[1, 2, 3],
[4, 5, 6]
]
숫자형 배열(number[])인 [1, 2, 3], [4, 5, 6] 들로 이루어진 배열이므로
number[]에다가 []를 한번 더 묶어주는 식으로 타입을 지정하면 된다.
튜플은 Typescript에서 제공하는 타입으로, 길이와 타입이 고정된 배열을 뜻한다.
예를 들어, number 타입이면서 길이가 2인 배열의 타입을 지정하려고 한다면 아래와 같이 작성하면 된다.
let tup1: [number, number] = [1, 2]
이렇듯 타입을 지정하려는 배열의 각 요소들의 타입을 배열로 묶어서 표현하면 된다.
let tup2: [number, string] = [1, "Hello"]
let tup3: [number, string, boolean] = [1, "Hello" true]
여기서 주의할 점은 튜플은 Typescript에서만 제공하는 타입이고, 컴파일하면 Javascript에서는 배열로 인식하게 된다.
그러기에 튜플에 배열 메서드를 사용하여 배열을 조작할 수 있다.
let tup4: [number, string] = [1, "2"]
tup4.push(true)
이렇게 push()메서드로 배열에 true를 추가해도 아무런 에러가 나지 않기에 튜플을 사용할 때는 주의가 필요하다.