keyof & typeof 연산자 - 타입 조작하기
/**
* keyof 연산자
*/
// interface Person{
// name: string;
// age : number;
// }
// typeof로도 타입 추출 가능
// -> 이렇게 쓰면 person의 객체의 타입을 추론해서 Person에 타입을 설정해줌
type Person = typeof person;
// keyof 를 쓰면 Person 객체 타입으로 부터 객체 타입의 모든 프로퍼티의 키를 유니온 타입으로 추출
// keyof 뒤에는 반드시 타입이 와야함
function getPropertyKey(person: Person, key: keyof typeof person){ // 이렇게 typeof person으로 뽑아낸 타입의 프로퍼티의 타입을 유니온으로 뽑아낼 수 있음
return person[key];
}
const person = {
name: "박정수",
age: 26
}
getPropertyKey(person, "name"); // 박정수