포트폴리오 데모·실제 결제 없음·매일 04:00 초기화
강의 Q&A 목록
TypeScript 실전 패턴 30김도윤 강사 · 강의 Q&A
미해결

제네릭 제약에서 keyof를 쓰면 string | number | symbol이 돼요

김
김*수수강생 · 2026.10.16 22:02 · 조회 20
06:41 2-3 예제로 익히는 타입 좁히기 시청 중 남긴 질문

6분 41초 예제처럼 객체와 키를 받아서 "키: 값" 문자열을 만드는 함수를 만들었는데, 템플릿 리터럴에 key를 넣으면 symbol을 문자열로 바꿀 수 없다는 에러가 나요.

제 객체 키는 전부 문자열인데 왜 symbol이 끼어드나요? String(key)나 as string으로 감싸면 에러는 사라지는데, 이게 맞는 방법인지 궁금합니다.

label.ts

function label<T, K extends keyof T>(obj: T, key: K) {
  return `${key}: ${obj[key]}`;
  // TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime.
}
신고

답변0

아직 답변이 없어요김도윤 강사가 확인하고 있어요. 같은 문제를 해결해 봤다면 먼저 답변을 남겨 주세요.
답변과 댓글은 수강생과 강사만 남길 수 있어요.로그인