일반적인 상황에서는 any 보다 더 구체적으로 타입을 표현할 수 있는 상황이 높다. 따라서 더 구체적인 타입을 찾아 타입 안정성을 높이도록 해야한다.
예를 들어, any 타입의 값을 그대로 정규식이나 함수에 넣는 것은 권장되지 않는다.
|
function getLenBad(array: any) { // 비추
return array.length;
}
function getLen(array: any[]) { // 좀더 안전
return array.length;
}
|
알수 없는 구조의 객체를 파라메터로 받는 함수의 구현시에도 any보다 좀더 구체적인 타입을 명시할 수 있다.
|
function getSomeObjKeysBad(obj: any) { // 비추
return Object.keys(obj);
}
function getSomeObjKeys(obj:{ [key: string] : any}){ //좀더 나음
return Object.keys(obj);
}
|
* any를 사용 할 때는 정말로 모든 값이 허용되는지 다시 한번 생각해봐야 한다.
* any 보다 더 정확하게 모델링할 수 있도록 any[] 또는 { [key: string]: any } 또는 () => any처럼 좀 더 구체적인 형태를 사용해야 한다.
'IT' 카테고리의 다른 글
| Effective Typescript - 41 - any의 진화를 이해하기 (0) | 2022.01.24 |
|---|---|
| Effective Typescript - 40 - 함수 안으로 타입 단언문 감추기 (0) | 2022.01.24 |
| Effective Typescript - 38 - any 타입은 가능한 좁은 범위에서만 사용하기 (0) | 2022.01.24 |
| Effective Typescript - 37 - 공식 명칭(nominal typing)에는 상표를 붙이기 (0) | 2022.01.24 |
| Effective Typescript - 36 - 해당 분야의 용어로 타입 이름 짓기 (0) | 2022.01.23 |