function combine(input1: number | string | boolean, input2: number | string){
let result;
if(typeof input1 === "number" && typeof input2 === "number"){
result = input1 + input2;
} else {
result = input1.toString() + input2.toString();
}
return result;
}
const combineAges = combine(30, 26);
console.log(combineAges) // 56
const combineNames = combine("max", "anna");
console.log(combineNames); // "maxanna"
작동은 하지만, 이후에 type을 쉽게 알아볼 수 없기 때문에 사용 시 주의해야 한다.
type Combinable = number;
function combine (input1: Combinable, input2: Combinable) {
console.log(input1 + input2);
}
그럼에도 불구하고 사용하는 이유는 number | string을 동시에 써야하는 경우, 혹은 그 이상 type을 설정해야하는 경우 유용하게 사용자 정의 타입을 적용할 수 있다.
type Combinable = number | string;
function combine (input1: Combinable, input2: Combinable) {
console.log(input1 + input2);
}