이 원칙을 세우게 된 이유는 다음과 같은 코드 때문입니다. 이전 절의 코드에서 타입 표기를 제거한 것입니다.
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으로 표기한 것이죠.