그래서 컴파일 옵션 중에는 any를 써야 하는데 쓰지 않으면 오류를 뱉도록 하는 옵션도 있다.
noImplicitAny
function returnAny(message: any): any {
console.log(message);
}
const any1 = returnAny("리턴은 아무거나");
any1.toString();
any는 게속해서 개체를 통해 전파된다.
결국, 모든 편의는 타입 안전성을 잃는 대가로 온다.
타입 안전성은 TypeScript를 사용하는 주요 동기 중 하나이며, 필요하지 않은 경우에는 any를 사용하지 않도록 해야 한다.
let looselyTyped: any = {};
let d = looselyTyped.a.b.c.d;
// ^ = let d: any
function leakingAny(obj: any) {
const a: number = obj.num;
const b = a + 1; // b -> number
return b;
}
const c = leakingAny({ num: 0 }); // c -> number
c.indexOf("0");
// Property 'indexOf' does not exist on type 'number'.