자바스크립트에서는 함수가 parameter를 받도록 되어있음에도 불구하고 함수를 인자 넘기지 않고 부를 수 있음. 이는 자바스크립트가 optional parameter를 기본으로 지원하기 때문임.
반면에 타입스트립트에서는 컴파일러가 함수를 부를때마다 아래와 같은 경우에 에러 뱉음.
타입스크립트에서 컴파일러가 넘어가는 인자를 다 체크해주기 때문에 optional parameter를 사용하려면 따로 사용한다고 해줘야함.
optional parameter를 사용하기 위해서는 parameter 이름 바로 뒤에 ?
를 붙여주면됨.
function multiply(a: number, b: number, c?: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
위 코드를 예시로 들었을때
c
parameter 뒤에 ?
를 붙여줌.c
가 들어왔는지를 typeof c !== 'undefined'
로 확인해줌.(if(c)
로 c가 초기화 됐는지 확인할 때 빈 스트링이나 0이 들어가면 못 거르기 때문에ndefined도 되기때문에 undefined
로 확인해야함.또한 optional parameter는 맨 마지막에 나와야함.
function multiply(a: number, b?: number, c: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
위 코드는 에러나옴.
parameter?: type
를 사용해서 paramater를 optional하게 만듬.typeof(parameter) !== 'undefined'
로 parameter가 초기화 됐는지 확인함.