타입스크립트 D-6

nearworld·2022년 7월 15일
0

typescript

목록 보기
6/28

본 게시글은 정확한 정보를 담고있지 않을 수 있으므로 다른 자료도 참고하시길 바랍니다.
만약, 본 게시글이 잘못된 정보를 가지고 있다면 피드백 부탁드립니다. 감사합니다.

함수 리턴 타입 지정

function calculateTax(tax: number): number {
 	return 0; 
}

위의 예제 함수 calculateTax는 숫자 0을 리턴하고 있고 f(x): number {} 형태로 작성되어 있다. 여기서 number의 의미는 number 타입의 데이터를 리턴하겠다는 의미이며 함수를 만들 때 후에 리턴되는 데이터의 타입이 다른 것이 되는 것을 미연에 방지할 수 있다.

noImplicitReturns

function calculateTax(tax: number) {
  if (income <= 50_000)
    return income * 1.2;
}

calculateTax 함수는 if문을 통한 리턴문을 하나 가지고 있으며 if문 조건이 충족되지 않을 시에는 return값이 javascript의 기본 리턴 값인 undefined가 될 것이다.
만약, 프로그램이 이 상태로 실행되는 것을 방지하고 기본 리턴 값이 아니라 직접 리턴 값을 설정하고 싶다면 tsconfig.json파일에서 noImplicitReturns을 활성화하여 경고를 보낼 수 있다.

// tsconfig.json
"noImplicitReturns": true

위 속성을 활성화하면 Not all code paths return a value 라는 경고문을 볼 수 있다.

타입스크립트의 엄격한 타입 지정을 통해 완성된 함수의 모습은 아래와 같게 된다.

function calculateTax(tax: number): number {
 	if (income <= 50_000)
      return income * 1.2;
  	return income * 1.3;
}

noUnusedLocals

function calculateTax(tax: number): number {
  let x;
  if (income <= 50_000)
    return income * 1.2;
  return income * 1.3;
}

위 코드를 보면 let x; 부분이 추가되었다. 자바스크립트에서 이와 같은 변수 선언은 아무런 문제가 없다. 그러나 엄격하게 보자면 x를 사용한적이 없는데도 x가 선언만 되어있는 의미없는 코드가 프로그램에 들어가 있는 상황이다. 이런 경우, 나중에 본인이든 협업 개발자이든 헷갈리게 할수도 있다는 생각이 들었다.
tsconfig.json에는 이런 선언만 있는 경우 에러를 발생시킬 수 있는 속성이 있다.

"noUnusedLocals": true

위의 속성을 활성화시키면 선언만 되어있고 사용되지 않은 변수는 에러를 발생시키게 된다.

profile
깃허브: https://github.com/nearworld

0개의 댓글