더북(TheBook)

특정한 속성에 연동되게 타입을 만들고 싶다면 다음과 같이 작성하면 됩니다.

type Animal = {
  name: string;
}

type N1 = Animal['name']; 
// type N1 = string
type N2 = Animal["name"];
type N3 = Animal.name; 
// Cannot access 'Animal.name' because 'Animal' is a type, but not a namespace. Did you mean to retrieve the type of the property 'name' in 'Animal' with 'Animal["name"]'?

자바스크립트에서 객체의 속성에 접근하듯 접근합니다. 작은따옴표 대신 큰따옴표를 사용해도 됩니다. 다만 '객체.속성' 꼴의 방식은 사용할 수 없습니다. 에러가 발생하면서 에러 메시지로 Animal["name"] 꼴로 바꾸라고 안내합니다. 이렇게 객체 속성의 타입에 접근하는 방식을 인덱스 접근 타입(Indexed Access Type)이라고 부릅니다.

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