[Typescript] 05. 필수가 아닌 파라미터
포스트
취소

[Typescript] 05. 필수가 아닌 파라미터

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에는 ParameterOptional(선택적)으로 받을 수 있도록 연산자를 지원한다.

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를 정의할 수 없다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.