const strNumBools: [string, number, ...boolean[]]
= ['hi', 123, false, true, false];
const strNumsBool: [string, ...number[], boolean]
= ['hi', 123, 4, 56, false];
const strsNumBool: [...string[], number, boolean]
= ['hi', 'hello', 'wow', 123, false];
...타입[] 표기를 통해 특정 타입이 연달아 나올 수 있음을 알릴 수 있기 때문입니다. strNumBools 변수는 첫 번째 요소의 타입이 string, 두 번째 요소의 타입이 number이면 되고, 세 번째부터는 boolean이면 됩니다. 이처럼 ...은 전개(spread) 문법으로 특정 자리에 특정 타입이 연달아 나옴을 표시할 수 있습니다.
타입이 아니라 값에 전개 문법을 사용해도 타입스크립트는 타입 추론을 해냅니다.
const arr1 = ['hi', true];
const arr = [46, ...arr1];
// const arr: (string | number | boolean)[]