아이템 21 - 타입 넓히기 넓히기 (widening) 런타임에 모든 변수는 유일한 값을 가진다 타입스크립트가 작성된 코드를 체크하는 정적 분석 시점에, 변수는 '가능한' 값들의 집합인 타입을 가진다 상수를 사용해 변수를 초기화할 때 타입을 명시하지 않으면 타입 체커는 타입을 결정해야 한다 즉, 단일 값을 가지고 할당 가능한 값들의 집합을 유추해야 한다 interface Vector3 { x: number; y: number; z: number; } function getComponent(vector: Vector3, axis: 'x' | 'y' | 'z') { return vector[axis]; } let x = 'x' let vec = {x: 10, y: 20, z: 30} getComponent(..