Skip to content

Instantly share code, notes, and snippets.

@DublinCity
Last active July 15, 2022 00:40
Show Gist options
  • Save DublinCity/6cc66895f0dc2f964677dcce1bd84fce to your computer and use it in GitHub Desktop.
Save DublinCity/6cc66895f0dc2f964677dcce1bd84fce to your computer and use it in GitHub Desktop.
# Item5: any 타입 지양하기

Item5: any 타입 지양하기

타입선언을 추가하는데 시간을 쏟고 싶지 않아서 any 를 쓴다면 타입스크립트의 많은 장점을 누리지 못한다.

any타입은 안전성이 없다.

아래 코드처럼 any 타입은 타입체크를 무시한다.

let age: number
age = '12' as any // NO ERROR

함수시그니처를 무시

함수를 작성할때 약속된 타입의 인자를 제공받길 원한다. 인자가 any 타입이면, 함수인자의 타입을 무시한다.

function calculate(input: number) {...}
let date: any = '1992'
calculate(date)// NO ERROR

언어서비스 지원 불가

타입스크립트 언어서비스는 any타입에 대해 자동완성기능과 리팩토링 기능을 제공하지 못한다.

타입 설계를 감춘다

any 타입을 사용하면 타입설계가 잘 되었는지 알 수가 없다.

타입시스템의 신뢰도를 떨어뜨린다

타입이 실제값과 일치한다면 타입정보를 기억해 둘 필요가 없기 때문에, 기억해야할 정보의 양을 크게 줄일 수 있지만 수많은 any 타입은 실제 타입을 기억해야하므로 일을 어렵게 만든다.

결론

  • any 는 타입체커와 언어서비스를 무력화한다.
  • 타입스크립트에서 any는 꼭 필요할 때만 사용한다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment