type Fruit = {
color: string,
name: string
}
const apple: Fruit = {
color: 'red',
name: 'apple'
}
//string 또는 number 타입을 갖는다.
type a = string | number
function ary(){
const a = []; //a: any[]
a.push('A');
a.push(1);
//배열이 정의된 영역을 벗어남
//배열을 반환하므로, 타입스크립트는 타입을 확장하지 않고 확정짓는다.
return a; //a: (string | number)[]
}
//function ary() : (string | number)[]
const array = ary();
array.push(true); //'boolean' 형식의 인수는 'string | number' 형식의 매개 변수에 할당될 수 없습니다.
const c: readonly boolean[] = [true, false, false];
const d = c.concat(c, true);
c.push(true); //'readonly boolean[]' 형식에 'push' 속성이 없습니다
const a: [number, string, boolean?] = [0, 'A', false];
const b: [number, string, ...boolean[]] = [0, 'A', true, false, true, false];
출처
보리스 체르니, 타입스크립트 프로그래밍(2021)