boolean

  1. const a:boolean = true/false

number

const a:number = 10       // 十进制
const a:number = 0b10100  // 二进制
const a:number = 0o24     // 八进制
const a:number = 0x14     // 十六进制

string

const a:string = '哈哈哈'
const a:string = `哈哈哈${other}`  // 模板字符串

数组

const arr:number[] = [1,2,3]
const arr:Array<number> = [1,2,3]       // 数组泛型方式

元组 Tuple

const arr:[number,string] = [1,'?']
  • 元组就是一个特殊的数组,限定了长度与元素类型的顺序

枚举 Enum

enum Color = {
    red,
  blue = 2,
  green
}

const color:Color = Color.red
const colorName = Color[2]
  • 枚举类似与对象,但是有额外的类型约束功能;枚举类型的变量,只能赋该枚举中的属性
  • 枚举属性的值等于上一个属性值 + 1,第一个属性默认为 0;也可以手动指定属性的值
  • 也可以通过枚举值,以数组下标的方式,去获取对应的属性名称,类型是 string

any

const a:any = 1
a:any = [1,2,3]
  • 表示任何类型,赋值时不会做类型检查

void

function myFunc ():void {
    console.log('void')
}
  • 表示没有类型,一般用于函数无返回值时;该类型的值只能是undefined和null

undefined和null

const u:undefined = undefined
const u:null = null | undefined
  • null和undefined既是类型也是值,且值只能是这两个
  • null和undefined是所有类型的子类型,因此可以赋值给所有类型
    • 因为在TypeScript中,子类型能够被赋值给父类型
    • 但是如果开启了严格模式,那么就不能这样赋值

never

function error ():never {
    throw new Error('我是never')
}

function infiniteLoop () {
    while (true) {
      // ...
  }
}
  • 表示一个不存在的值,一般用在函数中
    • 函数内无限循环,因此永远无法结束执行,不存在返回值
    • 函数中丢出异常,被中断执行,不存在返回值
  • 是所有类型的子类型,能赋值给其他类型;没有对应的值,不能被进行赋值

object

function create(o:object | null): void {
    // ...
}
create({ prop:0 })
create(null)
  • 表示非原始类型;值就是任意的 Object 对象

对象

const obj: {
     属性1: 类型,
  属性2: 类型,
  ...
}
  • 具体运算符可看接口

类型断言

强制指定某个值的类型,跳过TypeScript的类型检测

const xxx:目标类型 = <目标类型> zzz
const xxx:目标类型 = zzz as 目标类型
  • 类似于Java中的强制类型转换 ```typescript const value:any = ‘this is a string’

const target1:number = (value).length const target2:number = (value as string).length ```