布尔值
let isDone: boolean = false
数字
let decLiteral: number = 20
let hexLiteral: number = 0x14
let binaryLiteral: number = 0b10100
let octalLiteral: number = 0o24
字符串
let name: string = 'bob'
name = 'smith'
数组
let list: number[] = [1, 2, 3]
let list: Array<number> = [1, 2, 3]
元组 Tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let x: [string, number]
x = ['hello', 10] // OK
x = [10, 'hello'] // Error
枚举
enum Color {Red = 1, Green, Blue}
let c: Color = Color.Green
any
let notSure: any = 4
notSure = 'maybe a string instead'
notSure = false // 也可以是个 boolean
let list: any[] = [1, true, 'free']
list[1] = 100
void
function warnUser(): void {
console.log('This is my warning message')
}
null 和 undefined
never
never 类型表示的是那些永不存在的值的类型.never 类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是 never 的子类型或可以赋值给never 类型(除了 never 本身之外)。 即使 any 也不可以赋值给 never。
object
object 表示非原始类型,也就是除 number,string,boolean,symbol,null或undefined 之外的类型.
declare function create(o: object | null): void
create({ prop: 0 }) // OK
create(null) // OK
create(42) // Error
create('string') // Error
create(false) // Error
create(undefined) // Error
类型断言
let someValue: any = 'this is a string'
// 方式1
let strLength: number = (<string>someValue).length
// 方式2
let strLength: number = (someValue as string).length