객체의 key 값에 유니온 타입 선언하기

1
2
3
4
5
type userInfoType = "name" | "age" | "address";

interface User {
[key: userInfoType]: string;
}

유니온 타입 에러

  • “인덱스 시그니처 매개변수는 리터럴 타입이나 제네릭 타입이 될 수 없다.”는 에러가 발생했다.
  • 매핑된 객체를 대신 사용하라고 알려준다.

해결방법

1
2
3
4
5
6
7
8
9
10
11
type userInfoType = "name" | "age" | "address";

type userType = {
[key in userInfoType]: string;
};

let user: userType = {
name: "홍길동",
age: "20",
address: "서울",
};