반응형
🚫 Pick 사용시 Type ~ does not satisfy the constraint
type Colors = 'white' | 'gray' | 'black' | 'red' | 'orange' | 'blue' | 'purple' | 'green';
type BadgeColors = Pick<Colors, 'black' | 'green' | 'blue' | 'red' | 'orange'>; // Error
특정 컬러 타입을 지정하고 거기서 필요한 타입만 뽑아서 새로운 타입들을 지정하기위해 코드를 작성하였는데, Type "black" does not satisfy the constraint
와 같은 에러메시지를 만났다.
Pick을 사용하게 된 경우 타입자체가 반환되는게 아니라 객체 형태가 리턴되는것을 알 수 있다.
아래와 같이 코드를 변경하였다.
type Colors = 'white' | 'gray' | 'black' | 'red' | 'orange' | 'blue' | 'purple' | 'green';
type BadgeColors = Exclude<Colors, 'white' | 'gray' | 'purple'>; // Ok
Exclude<T, U>
는 타입에서 특정 요소를 제외 시켜주는데, T에서 사용되는 요소 중 U에 해당하는 것을 제외시켜줍니다.
Exclude
를 사용하게되면 타입으로 반환이 되기때문에 타입에러 없이 사용할 수 있습니다.
반응형
'WEB > Javascript' 카테고리의 다른 글
NodeJS - 1장 정리 (0) | 2023.06.01 |
---|---|
Typescript - Utility types (0) | 2023.05.29 |
Javascript - undefined, null의 차이 (0) | 2023.05.22 |
Typescript - tsconfig.json 파일 작성법 알아보기 (0) | 2022.12.19 |
Typescript - type, interface 차이점에 대하여 알아보자. (0) | 2022.12.17 |