객체 타입 T
입력 객체 전체의 형태를 제네릭 타입으로 받는다.
키 이름을 문자열로 받더라도 keyof와 제네릭을 쓰면 존재하지 않는 속성 접근을 컴파일 단계에서 막을 수 있다.
입력 객체 전체의 형태를 제네릭 타입으로 받는다.
K extends keyof T로 실제 존재하는 키만 허용한다.
T[K]를 사용해 선택한 키에 맞는 값 타입을 그대로 돌려준다.
여러 객체에서 같은 함수를 쓰면서도 타입 검사를 유지한다.
제네릭 유틸리티는 값을 유연하게 받기 위해 타입 정보를 버리는 것이 아니라, 입력과 출력의 관계를 보존하는 방식이다.