이 원칙을 세우게 된 이유는 다음과 같은 코드 때문입니다. 이전 절의 코드에서 타입 표기를 제거한 것입니다.

    const str = 'hello'; 
    // const str: "hello"
    const num = 123; 
    // const num: 123
    const bool = false; 
    // const bool: false
    const n = null; 
    // const n: null
    const u = undefined; 
    // const u: undefined
    const sym = Symbol('sym'); 
    // const sym: typeof sym
    const big = 100000000n; 
    // const big: 100000000n
    const obj = { hello: 'world' }; 
    // const obj: { hello: string }
    

    각 변수에 마우스오버해보면 뜻밖의 결과가 나옵니다. 이전 절에서 타입을 표기했던 것과 대부분 다르게 추론됩니다. 결론부터 말하면 타입스크립트의 추론이 더 정확한 추론입니다. const로 선언했기에 str 변수는 'hello' 외의 다른 문자열이 될 수 없습니다. 그런데 이전 절에서는 string으로 표기한 것이죠.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.