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

TypeScript에서 Generic Type Constraint 사용 시 Index Signature 타입 추론 문제

빗방울 2026.10.30 15:18 2분 읽기 조회 12

사이드 프로젝트에서 API 응답 데이터를 처리하기 위해 제네릭 기반의 유틸리티 함수를 구현하고 있습니다.

코드:

interface BaseResponse {
  id: string;
}

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

const data = { id: "123", name: "TypeScript", version: 5.0 };
const result = getValue(data, "name");

오류: `Type '{ id: string; name: string; version: number; }' does not satisfy the constraint 'BaseResponse'.` (특정 조건에서 `T`가 `BaseResponse`를 확장하지만 `K`를 통한 접근 시 타입 가드가 제대로 작동하지 않음)

시도: `K`에 `string` 타입을 명시적으로 추가하거나 `T`를 `any`로 캐스팅하여 테스트함.

질문: `T extends BaseResponse` 제약 조건이 있는 상태에서 `keyof T`를 통해 동적으로 값에 접근할 때, 타입 추론이 정확히 `T[K]`로 유지되게 하려면 어떻게 타입을 정의해야 합니까?

모든 이야기1488

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

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