본문으로 바로가기
COMMUNITY모든 이야기

TypeScript generic type에서 keyof T를 사용한 매핑 시 타입 추론 범위 문제

빗방울 2026.10.31 07:58 2분 읽기 조회 21 · 추천 2

사이드 프로젝트에서 객체의 키를 입력받아 해당 값의 타입을 반환하는 유틸리티 함수를 구현 중입니다.

코드:

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

const user = {
  id: 1,
  name: "Alice",
  profile: {
    age: 25,
    city: "Seoul"
  }
};

const name = getValue(user, "name"); // string (정상)
const age = getValue(user, "profile"); // { age: number, city: string } (정상)
// const city = getValue(user, "profile.city"); // Error: Argument of type '"profile.city"' is not assignable to parameter of type 'keyof user'.

오류: `Argument of type '"profile.city"' is not assignable to parameter of type 'keyof user'.`

시도: `K` 타입을 `string`으로 확장하여 시도했으나, 반환 타입 `T[K]`에서 인덱스 시그니처 오류가 발생함.

질문: 중첩된 객체 구조에서 점 표기법(dot notation) 문자열을 통해 깊은 단계의 프로퍼티 타입을 정확하게 추론하게 하려면 제네릭을 어떻게 구성해야 합니까?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글