Optional Parameters

kukudas·2022년 2월 7일
0

TypeScript

목록 보기
13/39

자바스크립트에서는 함수가 parameter를 받도록 되어있음에도 불구하고 함수를 인자 넘기지 않고 부를 수 있음. 이는 자바스크립트가 optional parameter를 기본으로 지원하기 때문임.

반면에 타입스트립트에서는 컴파일러가 함수를 부를때마다 아래와 같은 경우에 에러 뱉음.

  • 함수 선언의 parameter 개수와 함수를 부를때 사용한 인자의 개수가 다른 경우
  • 함수 parameter와 인자의 type이 같지 않은 경우

타입스크립트에서 컴파일러가 넘어가는 인자를 다 체크해주기 때문에 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가 초기화 됐는지 확인함.

출처

0개의 댓글

관련 채용 정보