명시적 반환 유형이 좋은 이유

2322 단어 webdevtypescript
TypeScript를 막 시작했을 때, 나는 내 함수에 대한 명시적 반환 유형을 선언하는 것의 가치를 무시하곤 했습니다. 유형 유추와 IntelliSense가 있는데 굳이 지정하는 이유는 무엇입니까? 글쎄, 나는 매우 틀렸다.

그것의 주요 이점은 실제로 내 기능을 호출하는 사람이 아니라 나중에 내 기능을 편집할 수 있는 사람에게 있다는 것이 밝혀졌습니다. 이유는...

이 기능이 있다고 상상해보십시오.

function getAge(person: Person) {
  return calculateAge(person.birthdate);
}


분명히 a number 를 반환하고 IntelliSense도 저에게 알려주므로 이것은 모두 좋습니다. 그러나 나중에 누군가 내 기능을 편집하여 다음과 같이 가드 조건을 추가합니다.

function getAge(person: Person) {
  if (person.birthdate === undefined) return null;

  return calculateAge(person.birthdate);
}


이렇게 하면 이 함수에서 TS 오류가 발생하지 않지만 이제 유추된 반환 유형이 number | null 가 되어 원래 의도와 분명히 다릅니다. 이제 우리는 아마도 의도치 않게 주요 변경 사항을 도입했습니다.

이제 다음과 같이 처음에 반환 유형을 지정했다고 상상해 보십시오.

function getAge(person: Person): number {
  // . . .
}


그러면 내 팀 동료는 처음부터 변경 없이 구현에서 변경할 수 있는 것과 변경할 수 없는 것을 알았을 것입니다.

좋은 웹페이지 즐겨찾기