type annotation
- 개발자가 타입을 타입스크립트에게 직접 말해주는 것
const rate: number = 5
type inference
- 타입스크립트가 알아서 타입을 추론하는 것
- 변수 선언과 동시에 초기화할 경우 타입을 알아서 추론함
const rate = 5
타입스크립트가 타입을 추론하지 못해서 타입 annotation을 꼭 해줘야 하는 경우
- any 타입을 리턴하는 경우
- coordinates에 hover 하면 const coordinates: any 라고 뜸
- JSON.parse는 json을 파싱해 줌.
- 인풋으로 들어가는 json을 확인하면 대충 어떤 타입이 리턴될지 개발자는 예상 가능함
- 그러나 타입 스크립트는 리턴 타입이 일정하지 않으므로 any를 리턴한다고 추론함
- 이럴 경우 type annotation을 사용해야함.
const json = '{"x": 4, "y": 7'
const coordinates = JSON.parse(json)
console.log(coordinates)
- 변수 선언을 먼저하고 나중에 초기화하는 경우
- 변수 선언과 동시에 초기화하면 타입을 추론함
- 그러나 선언을 먼저하고 나중에 값을 초기화할 때는 추론하지 못함
let greeting
greeting = "hello"
// let greeting: any 라고 추론함
- 변수에 대입될 값이 일정하지 못한 경우
- 여러 타입이 지정되어야 할 때는 '|'(or statement) 로 여러 타입을 annotation 해줘야 함
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]
}
}