any
또한 타입스크립트에는 any
라는 특수 타입이 있습니다. 이는 특정 값 때문에 타입 검사 오류가 발생하는 것을 원하지 않을 때 사용할 수 있습니다.
값이 any
타입이면, 값의 모든 프로퍼티(any
타입이 됨)에 접근하거나, 함수처럼 호출하거나, 모든 타입의 값에 할당하거나, 모든 타입의 값을 할당하는 등, 문법적으로 합법적인 거의 모든 것이 가능합니다.
ts
letobj : any = {x : 0 };// 다음 코드 줄들은 컴파일러 오류를 발생시키지 않습니다.// any를 사용하면 모든 추가 타입 검사가 비활성화됩니다.// 그리고 여러분이 타입스크립트보다 환경을 더 잘 알고 있다고 가정합니다.obj .foo ();obj ();obj .bar = 100;obj = "hello";constn : number =obj ;
ts
letobj : any = {x : 0 };// 다음 코드 줄들은 컴파일러 오류를 발생시키지 않습니다.// any를 사용하면 모든 추가 타입 검사가 비활성화됩니다.// 그리고 여러분이 타입스크립트보다 환경을 더 잘 알고 있다고 가정합니다.obj .foo ();obj ();obj .bar = 100;obj = "hello";constn : number =obj ;
any
타입은 특정 코드 줄이 괜찮다고 타입스크립트를 설득하기 위해, 긴 타입을 작성하고 싶지 않을 때 유용합니다.
noImplicitAny
타입을 지정하지 않았고 타입스크립트가 컨텍스트에서 추론할 수 없는 경우, 컴파일러는 일반적으로 타입을 any
로 설정합니다.
그러나 일반적으로 any
는 타입이 확인되지 않기 때문에 이를 피하는 것이 좋습니다. 컴파일러 플래그 noImplicitAny
를 사용하면 암시적 any
가 오류로 표시됩니다.