문법 공부를 하던 도중, 간단한 계산기 함수를 만들어 볼 것이다.
function calculate(kind: string, num1: number, num2: number): number {
switch(kind) {
case 'add':
return num1 + num2;
case 'substract':
return num1 - num2;
case 'multiply':
return num1 * num2;
case 'divide':
return num1 / num2;
case 'remainder':
return num1 % num2;
default:
throw new Error('kind를 잘못 설정하였습니다.');
}
}
console.log(calculate('add', 1, 3)); // 4
console.log(calculate('substract', 3, 1)); // 2
console.log(calculate('multiply', 4, 2)); // 8
console.log(calculate('divide', 4, 2)); // 2
console.log(calculate('remainder', 5, 2)); // 1
calculate 함수는 3개의 인자를 받는다. 첫 번째 인자는 string 타입이고, num1 과 num2는 number 타입이다. return 되는 타입 역시 number 타입이다.
마지막에는 throw new Error를 이용하여 에러 처리를 해주었다.
더 나아가서, kind에는 add, substract, multiply, divede, remainer 가 들어갈 수 있는데 단순히 string 타입이라고 적어두기만 한다면 직관적이지 않아 보일 수 있다. 유니언 타입을 사용하여 kind에 선언할 수 있는 인자를 직관적으로 나타내보자.
type Kind = 'add' | 'substract' | 'multiply' | 'divide' | 'remainder';
function calculate(kind: Kind, num1: number, num2: number) {
...
}