반응형
SMALL
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)
*/
반응형
LIST
'TypeScript' 카테고리의 다른 글
타입스크립트에서는 문장(function ...() {...})보다는 함수표현식(const ... () => {})을 쓰자! (0) | 2023.02.25 |
---|---|
타입단언보다 타입선언을 사용하자(feat. DOM element는 좀 다름) (0) | 2023.02.25 |
| 와 &의 차이 (0) | 2023.02.25 |
타입을 집합으로 이해하기 (0) | 2022.06.19 |
코드생성과 타입은 관계가 없음 (0) | 2022.06.19 |