keyof
타입 연산자
keyof
연산자는 객체 타입에서 객체의 키 값들을 숫자나 문자열 리터럴 유니언을 생성합니다.
아래 타입 P는 “x” | “y”와 동일한 타입입니다.
tsTry
typePoint = {x : number;y : number };typeP = keyofPoint ;
만약 타입이 string
이나 number
인덱스 시그니쳐를 가지고 있다면, keyof
는 해당 타입을 리턴합니다.
tsTry
typeArrayish = { [n : number]: unknown };typeA = keyofArrayish ;typeMapish = { [k : string]: boolean };typeM = keyofMapish ;
위 예제에서 주목할 점은 M
은 string | number
라는 점입니다. — JavaScript 객체 키는 항상 문자열을 강제하기 때문에, obj[0]
은 obj["0"]
과 동일합니다.
keyof
타입은 우리가 추후에 학습할 매핑된 타입과 함께 사용할 때 특히 유용합니다.