Skip to main content

keyof 사용법

interface에 정의된 name, age, address에 Object.keys한 느낌임

따라서

interface Person {
name: string;
age: number;
}

keyof Person// 'name' | 'age'
interface Person {
name: string;
age: number;
address: string;
}

type PersonKeys = keyof Person;

function getProperty(obj: Person, key: keyof Person) {
return obj[key];
}

const person: Person = {
name: "John",
age: 30,
address: "123",
};

getProperty(person, "name"); // 정상
getProperty(person, "names");
/**
Argument of type '"names"' is
not assignable to parameter of type 'keyof Person'.(2345)
*/