-
[TypeScript] ReturnType, const개발/Javascript 2022. 7. 13. 01:56
type Color = 'red' | 'yellow' | 'orange'; // const color: Color = 'white' // error const color: Color = 'yellow'; // ok
color 변수의 타입은 Color입니다. string이 아닙니다.
모든 string 값을 넣을 수 있는 것이 아니라 'red', 'yellow', 'orange'만 넣을 수 있는 타입입니다.
리덕스에서 보통 액션 생성 함수를 사용하는데요.
다음 코드는 반환값이 어떻게 추론될까요.
const TEST = 'test'; const fn = () => ({type: TEST})
string으로 되어 버립니다. 의도한 것이라면 상관 없지만
리덕스에서 액션 생성 함수를 사용할 때는
string 타입이 아니라 'test'라는 값을 타입으로 쓰고 싶은 겁니다.
이를 해결하는 방법이 const입니다.
const TEST = 'test' as const; const fn = () => ({ type: TEST });
const는 값을 상수화하는 데 쓰이는 예약어인데, as const로 쓰일 때는
해당 값이 타입으로 변환되지 못하게, 값을 상수화해서 고정해버리는 의미로 쓰였습니다.
그리고 이렇게 액션 생성 함수에서 처럼,
함수의 반환값을 타입으로 활용하고 싶을 때는 ReturnType을 사용
ReturnType은 함수 타입의 리턴 타입을 반환합니다.
const TEST = 'test' as const; const fn = () => ({ type: TEST }); type NewType = ReturnType<typeof fn>;
'개발 > Javascript' 카테고리의 다른 글
[Jest] 간단한 유닛 테스트(feat.setTimeout()) (0) 2022.08.02 addEventListener에서의 this (0) 2022.07.19 [Clouser] 아주 아주 간단한 클로저 기본 (0) 2022.07.08 [Koa] 프레임워크에서 static 파일 경로 설정하기 (0) 2022.07.06 [MongoDB] 간단한 aggregation $lookup (0) 2022.07.05