더북(TheBook)

Brand 타입으로 만들어낸 KM 타입은 number & { __brand: 'km' }라는 타입이고, Mile 타입은 number & { __brand: 'mile' }이라는 타입입니다. 2.13절에 따라 number 타입에 각자 다른 브랜드 속성을 추가한 것입니다. 이러면 둘 다 number이지만 서로 구별되게 됩니다.

KM, Mile 타입은 원래부터 존재하던 타입이 아니므로 as로 강제 변환해야 합니다. 하지만 한 번 변환하고 나면 그 다음부터는 계속 KM, Mile로 사용할 수 있습니다. mile2Mile 타입으로 kmToMile 함수의 인수로 넣을 수 없습니다.

이렇게 브랜딩 기법을 활용하여 number 타입을 KM, Mile 타입으로 세분화했습니다. 타입스크립트라서 가능한 방법입니다. 타입을 더 정밀하게 활용할수록 안정성도 더 올라가므로 여러분의 프로젝트에 적용해보기를 추천합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.