Type Annotation

let a = 'mark'
a = 30

let a: **string** = 'mark'  // Type Annotation
a = 39  // 컴파일 오류

타입의 별칭(Alias)

let person: string | number = 0  // union 타입

**type** StringOrNumber = string | number  // union 타입을 하나의 단어로 별칭 짓기

let another: StringOrNumber = 0
another = 'hi'

원시 타입 vs 래퍼 객체 타입

// 원시 타입
true
'hi'
3.14
null
undefined

// Wrapper 객체 타입
new Boolean(false)
new String('hi')
new Number(42)

boolean

let isDone: boolean = false

let isNotOk: boolean = new Boolean(true) // 원시 타입과 래퍼 객체 타입은 호환 X

number

let decimal: number = 6
let underscoreNum: number = 1_000_000