추론이 지나가는 순서
| 단계 | 타입 식 | 컴파일러가 확정하는 것 |
|---|---|---|
| 1. 객체에서 T 추론 | T = User | name, age, city 속성을 가진 객체 구조를 보존합니다. |
| 2. 키 집합 계산 | keyof T | 가능한 키를 "name" | "age" | "city"로 좁힙니다. |
| 3. K를 키로 제한 | K extends keyof T | "address"처럼 목록 밖의 문자열은 인자로 받지 않습니다. |
| 4. 값 타입 반환 | T[K] | "age"를 넣으면 number, "name"을 넣으면 string이 됩니다. |
통과
getProperty(user, "age") returns number
차단
getProperty(user, "address") blocks key error