keyof 연산자는 객체 타입으로부터 프로퍼티의 모든 key들을 String Literal Union 타입으로 추출하는 연산자이다.
주의할 점은 keyof 연산자는 오직 타입에만 적용할 수 있는 연산자라는 점이다. 따라서 값과 함께 사용하려고 하면 오류가 발생한다.
typeof 연산자는 자바스크립트에서 특정 값의 타입을 문자열로 반환하는 연산자이다. 다른 기능은 타입을 정의할 때 사용하면 특정 변수의 타입을 추론하는 기능도 가지고 있다.
type Person = typeof person;
// 결과
// {name: string, age: number, location:string}
const person = {
name: "John",
age: 25,
};
이러한 특징을 이용해 keyof 연산자를 다음과 같이 사용할 수 있다.
(...)
function getPropertyKey(person: Person, key: keyof typeof person) {
return person[key];
}
const person: Person = {
name: "이정환",
age: 27,
};
출처
한 입 크기로 잘라먹는 타입스크립트
'Client > TypeScript' 카테고리의 다른 글
[TypeScript] catch문 error 타입 정하기 (feat. 타입 가드와 타입 단언의 차이) (0) | 2024.06.19 |
---|---|
[TypeScript] in 문법, typeof 문법 차이 (0) | 2024.06.01 |
[TypeScript] 타입스크립트의 배열 (0) | 2024.05.28 |
[TypeScript] 인덱스 시그니쳐 (0) | 2024.05.27 |
[TypeScript] TypeScript에서 클래스(Class) 사용하기 (0) | 2024.05.25 |