원시 자료형에도 브랜딩 기법 사용 가능
원시 자료형 브랜딩 기법
function kmToMile(km: number) {
return km * 0.62;
}
const mile = kmToMile(3);Brand Type
type Brand<T, B> = T & { _brand: B };Last updated
function kmToMile(km: number) {
return km * 0.62;
}
const mile = kmToMile(3);type Brand<T, B> = T & { _brand: B };Last updated
type KM = Brand<number, 'km'>;
type Mile = Brand<number, 'mile'>;
function kmToMile(km: KM) {
return km * 0.62 as Mile;
}
const km = 3 as KM;
const mile = kmToMile(km); // mile
const mile2 = 5 as Mile;
// error, Argument of type 'Mile' is not assignable to parameter of type 'KM'
kmToMile(mile2);