Primitive Types
boolean.number.string.array.tuple:- Fixed number of elements whose types are known.
- Variable length
arraytypes aren’t assignable totupletypes.
enum.null.undefined.void.any.unknown: 任何类型都能分配给unknown, 但unknown不能分配给其他基本类型.never:switchdefault case guard (exhaustiveness check).- Reduce
neverintersection type. - Ignored in union type:
- mapped conditional type.
- distributive conditional type.
let num: number
let str: string
let bool: boolean
let boolArray: boolean[]
let tuple: [string, number]
let power: any
// 赋值任意类型
power = '123'
power = 123
// 它也兼容任何类型
power = num
num = power
function log(message: string): void {
console.log(message)
}
function unknownColor(x: never): never {
throw new Error('unknown color')
}
type Color = 'red' | 'green' | 'blue'
function getColorName(c: Color): string {
switch (c) {
case 'red':
return 'is red'
case 'green':
return 'is green'
default:
return unknownColor(c)
}
}