더북(TheBook)

const 대신 let을 사용하는 경우도 한번 보고 넘어가면 좋습니다.

let str = 'hello'; 
// let str: string
let num = 123; 
// let num: number
let bool = false; 
// let bool: boolean
let n = null; 
// let n: any
let u = undefined; 
// let u: any
let sym = Symbol('sym'); 
// let sym: symbol
let big = 100000000n; 
// let big: bigint
let obj = { hello: 'world' }; 
// let obj: { hello: string }

let을 사용하면 const와는 전혀 다르게 타입을 추론합니다. let으로 선언한 변수는 다른 값을 대입할 수 있기에 타입을 넓게 추론하는 것입니다. 이러한 현상을 타입 넓히기(Type Widening)라고 부릅니다. 다만 자료형을 바꾸는 경우는 그리 많지 않으므로 처음 대입한 값의 타입을 기반으로 추론합니다. 'hello'string이므로 str 변수도 string으로 추론하는 식입니다.