Item 39 any를 구체적으로 변형해서 사용하기

Key Points

any는 JS에서 표현할 수 있는 모든 값을 아우르는 매우 큰 범위의 타입이다.

  • 숫자, 문자열, 배열, 객체, 정규식, 함수, 클래스, DOM 엘리먼트, null, undefined,... 모두!

  • 하지만 any 보다는 any[], any[][]가 더 구체적이고 타입 체킹에 유리하다.

  • 함수의 매개변수가 객체지만 값을 알 수 없다면 { [key: string]: any }를 사용하면 된다.

  • any보다는 비기본형(non-primitive) object를 사용하는 방법도 있다. 키를 열거할 수는 있지만 속성에 접근할 수 없다는 점에서 다르다.

Summary

  • any를 사용할 때는 정말로 모든 값이 허용되야만 하는지 면밀히 검토해야 한다.

  • any보다 더 정확하게 모델링할 수 있도록 any[] 또는 { [id: string]: any } 또는 () => any처럼 구체적인 형태를 사용해야 한다.

Last updated