keyOf type

YOUNGJOO-YOON·2022년 1월 2일
0

typeScript

목록 보기
48/65
interface Person {
  name: string;
  age: number;
  location: string;
}
type k1 = keyof Person;
type k2 = keyof Person[];
type k3 = keyof { [x: string]: Person };

type p1 = Person['name'];
type p2 = Person['name' | 'age'];
type p3 = string['charAt'];
type p4 = string[]['push'];
type p5 = string[][0];

function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}

const A: { a: number; b: string } = { a: 10, b: 't' };
let _a: number = getProperty(A, 'a'); // 10
let _b: string = getProperty(A, 'b'); // 't'
console.log('_a: ', _a);  // 10
console.log('_b: ', _b); // 't'

function setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]): void {
  obj[key] = value;
}

setProperty(A, 'b', 'starship!'); 
console.log('A: ', A); // { a: 10, b: 'starship!'}
profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글