keyof
는 객체 타입에서 키 타입을 추출하는 데 사용되는 TS의 키워드다.
명시적 키가 있는 객체 타입에 사용될 때 keyof
는 해당 키를 사용하여 공용체 타입을 만든다.
interface Person {
name: string;
age: number;
}
// `keyof Person` here creates a union type of "name" and "age", other strings will not be allowed
function printPersonProperty(person: Person, property: keyof Person) {
console.log(`Printing person property ${property}: "${person[property]}"`);
}
let person = {
name: "Max",
age: 27
};
printPersonProperty(person, "name"); // Printing person property name: "Max"s
keyof
는 인덱스 타입을 추출하기 위해 인덱스 서명과 함께 사용할 수도 있다.