2020-04-02
primitive type에 intersection을 사용하는 것은 무조건 오류라고 생각했는데, 쓰임새가 있다.
https://github.com/Microsoft/TypeScript/issues/12435#issuecomment-262429933
위 경우 처럼.. number지만 unique한 타입으로 지정하고 싶을 때.
type FeetInches = number & Feet;
이런식으로 선언하고
function cal(inches: FeetInches) {..}
이렇게 지정한다면 cal(20)
같은건 에러가 날거다.
인자로 전달한 20은 그냥 number type이니까.
그러나,
function getFeetInches(inch: number): FeetInches {
return inch as FeetInches;
}
이렇게 타입을 부여하는 함수를 정의해 이것의 리턴값을 전달한다면 오류가 나지 않는다.
이렇게 primitive 값에도 강제성 있는 타입을 부여할 수 있다..