더북(TheBook)

obj, arr, func의 타입은 각각 객체, 배열, 함수를 표시하는 리터럴 타입입니다. 함수 리터럴 타입에서는 반환값의 표기법이 다르다는 점을 기억하세요. 콜론 대신 =>를 사용합니다. 함수 리터럴 타입에 매개변수와 반환값의 타입을 표기했으므로 실제 값에서는 타입 표기를 생략해도 됩니다.

객체 리터럴 타입을 사용할 때 한 가지 조심해야 할 점이 있습니다. 타입스크립트는 대부분의 경우 여러분이 의도한 것보다 리터럴 타입을 더 부정확하게 추론합니다. 다음 코드를 보세요.

const obj = { name: 'zero' }; 
// const obj: { name: string }
const arr = [1, 3, 'five']; 
// const arr: (string | number)[]

처음 보는 표기가 나왔습니다. 다음 절에서 배우겠지만 (string | number)[]는 (문자열 또는 숫자)의 배열이라는 뜻입니다. obj의 타입도 이전과는 다릅니다.

자바스크립트의 객체는 const 변수라도 수정할 수 있으므로, 타입스크립트는 수정 가능성을 염두에 두고 타입을 넓게 추론합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.