본문 바로가기

IT

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

일반적인 상황에서는 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처럼 좀 더 구체적인 형태를 사용해야 한다.