
개발자가 타입을 타입스크립트에게 직접 말해주는 것
const rate: number = 5;
타입스크립트가 알아서 타입을 추론하는 것
변수 선언과 초기화를 동시에 할 경우, 초기화한 값의 타입을 보고 알아서 추론한다.
const rate = 5;
그러면 최대한 오류 발생을 막기 위해서 모든 데이터에 타입을 annotate 하는 것이 좋을까?
➡️ 모든 부분에 타입을 annotate 하는 것보단 타입스크립트가 알아서 추론할 수 있는 부분은 냅두고, 그렇게 하지 못하는 부분들만 annotate 해주는 것이 좋다.
그러면 타입스크립트가 알아서 데이터를 추론하지 못하는 경우는 어떤 경우가 있을까?
const json = '{"x": 4, "y": 7}'
const coordinates = JSON.parse(json)
console.log(coordinates)
개발자는 json을 파싱하면 어떤 타입일지 예상할 수 있지만, 타입스크립트는 그렇지 않다. 데이터 타입이 혼재되어 있어서 any라고 추론한다. 그러므로 이런 경우에는 annotation 해줘야 한다.
변수 선언과 동시에 초기화하면 타입을 추론할 수 있지만, 선언과 초기화를 따로 하는 경우에는 선언할 때 타입을 annotation 해줘야 한다.
let greeting
greeting = 'hello' //let greeting: any
let num = [-7, -2, 10]
let numAboveZero: boolean | number = false
for (let i = 0; i < num.length; i++) {
if (num[i] > 0) {
numAboveZero = num[i]
}
}
처음엔 numAboveZero 에 false 값을 임의로 할당하고, 그 뒤로 for문을 돌면서 numAboveZero 의 데이터 타입이 숫자형으로 변경되므로 numAboveZero 선언 시에 데이터 타입을 boolean | number 로 지정해줘야 한다.