/** Describing Types of Functions */
function func(a: number, b: number) {
return a + b;
}
/** Using Arrow Functions */
const add = (a: number, b: number) => a + b;
/** Using Default Values */
const subtract = (a = 2, b = 1) => a - b;
func(…): number) 타입 추론을 사용하여 생략해줄 수도 있다./** Optional Parameter */
function print(a: number, **b?: number**) { // type of b is number | undefined
console.log(a);
if (typeof b === "number") {
console.log(b);
}
}
?: 를 사용하여 optional parameter로 정의해주면 된다.
undefined와의 Union type으로 정의된다.
b 파라미터의 타입이 number | undefined로 정의된다는 말이다./** Spread Operator */
function getSum(...nums: number[]) {
let sum = 0;
nums.forEach((i) => (sum += i));
return sum;
}
function getSumOfThree(...nums: [number, number, number]) {
let sum = 0;
nums.forEach((i) => (sum += i));
return sum;
}
console.log(getSum(1, 2, 3, 4, 5)); // not getSum([1, 2, 3, 4, 5])
console.log(getSumOfThree(1, 2, 3)); // error if (1, 2, 3, 4)
…)를 적절히 사용하면 여러개의 매개변수가 있는 경우 더 간결하게 코드를 작성할 수 있다.Documentation - More on Functions