typescript

92 阅读3分钟

typescript 数据类型

  1. number
  2. boolean
  3. string
  4. object
  5. array
  6. 元组(tuple)
  7. null和undefined
  8. symbol
  9. any
  10. unknown
  11. never
  12. void

object

一般不会用object,object类型读不到值,且改不了值,所以没用

array

let arr:Array<string> = []
let arr1:string[] = []

元组tuple

let arr:[string,number]=['123',123]

null和undefined

他们既是类型,也是自身类型的值

let a:null = null
let b:undefined = undefined

any

any是用来定义无法确定变量的类型的类型,定义的变量可以进行任何操作

unknown

用来描述不确定的变量,与any有点类型,但是无法在类型无法确定时做任何操作

let a:unknown
// 需要对unknown类型数据进行类型保护才能进行操作
if(typeof a === 'string'){
    console.log(a.length)
}

never

用来描述从不可能发生的类型

image.png

void

是用来描述没有返回值的函数返回值类型,void下的函数返回值类型也支持返回undefined

image.png

类型推断

我们在变量没有指定类型时,typescript会根据上下文给我们推断该变量的类型,所以我在定义变量时,可以给变量一个默认值,typescript就会根据初始值给我们推断出对应类型。

联合类型

联合类型是一种组合类型,表示必须是这多种类型的其中一种,每个类型我们称为联合成员

image.png

问题:

多种类型导致调用某一种联合成员的方法报错,需要进行类型保护,typescript会根据上下文确定该变量的类型

image.png

类型别名

image.png

接口interface

image.png

接口属性修饰符

image.png

类型别名和interface

type没有像interface一样具有继承性等,所以对象类型的数据一般使用interface来定义类型,非对象类型的数据用别名来定义。

interface可以重复定义接口而type不行

交叉类型

交叉类型也是一种组合类型,但是这种组合类型是交叉成员必须都满足

image.png

image.png

类型断言

image.png

非空类型断言

image.png

字面量类型

image.png

字面量推断

image.png

类型缩小

image.png

typeof

image.png

平等缩小

image.png

instanceof

image.png

in

image.png

函数类型

image.png

调用签名

image.png

构造签名

image.png

参数可选类型和默认参数和剩余参数

image.png

image.png

image.png

函数重载

image.png

image.png

image.png

This

image.png

指定this

image.png

this相关的内置工具

image.png

image.png

枚举

image.png

严格的字面量赋值检测

当变量的类型失去鲜活度时,typescript不会对该变量进行严格字面量赋值检测,否则执行严格字面量检测

image.png

typescript模块化

js规范没有export的js文件都应该是一个文件,而非模块。

如果你有一个js文件,没有import或export,可以用export{} 让js把这个文件没有导出任何内容的模块

内置类型导入

image.png

命名空间namespace(了解)

image.png

declare 声明模块

image.png

declare 声明文件

image.png

declare 命名空间

image.png

类型查找

image.png

image.png

image.png

image.png

image.png

tsconfig.json文件

image.png

image.png

image.png

image.png

typescript类

image.png

image.png

image.png

image.png

image.png

抽象类

image.png

image.png

索引签名

image.png

接口继承

image.png

接口实现

image.png

抽象类和接口的区别

image.png

泛型

image.png

泛型接口

image.png

泛型类

image.png

泛型约束

image.png image.png

映射类型

image.png

image.png

条件类型(了解)

image.png

image.png

image.png