基础类型

布尔值

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
原文地址:https://www.cnblogs.com/renzhiwei2017/p/15533099.html