파라미터를 선택적으로 받는다
function test_param(n1: number, s1: string, s2?: string) {
// s2 optional 파라미터
console.log(n1);
console.log(s1);
console.log(s2);
}
test_param(123, 'this is a string');
//123
//this is a string
//undefined
test_param(123, 'this is a string', 'hello');
//123
// this is a string
// hello
자바의 가변 인자와 동일한 기능을 한다.
spread연산자 라고 하는 ...변수명 이용
내부적으로 배열로 처리한다. 따라서 Array객체에서 제공하는 메서드를 사용할 수 있다.
function test_param(...n: number[]) {
console.log(n);
}
test_param(1, 2, 3);
test_param(10, 20, 30, 40, 50, 60);
function test_param2(x: any, y: any, ...n: string[]) { //
console.log(x, y, n);
}
test_param2(1, 2, 'a', 'b', 'c');
// 1 2 a b c
test_param2('a', 'b', 'c', 'd');
// a b c d
함수의 매개변수에 기본 값 설정 가능.
파라미터로 넘어오는 인자 값이 없는 경우에 기본값으로 설정된다.
function calculate_discount(price: number, rate: number = 0.5) {
let discount = price * rate;
console.log('Discount Amount', discount);
}
calculate_discount(1000); // 500
calculate_discount(1000, 0.3); // 300