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