미해결
제네릭 제약에서 keyof를 쓰면 string | number | symbol이 돼요
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.
}