Optional Parameters
Javascript
에서는 함수의 선언부에서 표기 된 Parameters
갯수를 전부 충족시키지 않은 실행이 이루어져도 에러가 나지 않는다.
1
2
3
4
const consolePrint = (a, b, c) => {
console.log(a, b, c);
};
consolePrint(1, 2); // 1, 2, undefined
그저 undefined
로 출력이 될 뿐 에러 요소는 아니다.
하지만 Typescript
에서는 Paramters
갯수도 강제성을 띈다.
1
2
3
4
const consolePrint = (a: number, b: number, c: number) => {
console.log(a, b, c);
};
consolePrint(1, 2); // Expected 3 arguments, but got 2
만약 매개변수를 굳이 받지 않아도 되는 부분이라면 생략할 수도 있을텐데 좀 너무한 부분이다.
그래서 Typescript
에는 Parameter
를 Optional
(선택적)으로 받을 수 있도록 연산자를 지원한다.
1
2
3
4
const consolePrint = (a: number, b: number, c?: number) => {
console.log(a, b, c);
};
consolePrint(1, 2); // 1, 2, undefined
생략해도 되는 parameters
이름 뒤에 ?
연산자를 붙여주면 해당 parameter
는 생략이 가능하다.
여담
1
2
3
4
const consolePrint = (a: number, b?: number, c: number) => { // A required paramter cannot follow optional paramter.
console.log(a, b, c);
};
consolePrint(1, 2);
당연한 소리겠지만 Optional Paramter
뒤에는 Required Paramter
를 정의할 수 없다.