TypeScript/Basic-Types

TypeScript - any

KDONG 2022. 2. 7. 12:46

typescript11

Any

  • 어떤 타입이어도 상관없는 타입이다.
  • 이걸 최대한 쓰지 않는게 핵심이다.
  • 왜냐하면 컴파일 타임에 타입 체크가 정상적으로 이뤄지지 않기 때문이다.
  • 그래서 컴파일 옵션 중에는 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'.

 

 

Notion : https://torpid-pasta-de7.notion.site/Basic-Types-7c1eff4fb5f3449e932fb1d157da1f25