typescript

49 阅读1分钟
  1. string是小写
  2. never的用法
  3. unknown可以预先声明未知字段类型,编译阶段无法通过
  4. object只能存【非原始类型】,Object可以存能调用到Object方法的类型【也就是除了null、undefined,其他都可以】
  5. 声明对象类型
let person = {name: string, age?:number,[key:string]:any}

# age后面的?表示实例化时可以不写age的值
# [key:string]:any 称为 索引签名,可以定义任何数量的对象属性

7. 声明函数类型

# 这行是ts代码
let count: (a:number, b:number) => number

# 这段是js代码
count = function(a, b) {
  return a + b
}

# ts中 => 表示函数类型,描述其参数类型和返回类型
# js中 => 表示函数的实现

9. 声明数组类型

let arr: string[]
let arr2: Array<number>
let arr3: Array<person>

10.元组tuple

let arr1: [string, string]
let arr2: [number, boolean?]
let arr3: [number, ...string[]]

11. enum * 数字枚举下标会自动增长,k v相互映射 * 字符串枚举配合const使用,k 映射 v

  1. type 声明类型
  • 联合类型 image.png
  • 交叉类型

image.png

  1. 属性修饰符
  • public
  • protected
  • private
  • readonly => public readonly color: string
  1. 什么时候使用抽象类

image.png

  1. interface 和 type 都可以声明结构体
  2. 泛型

image.png 17. 类型声明文件

image.png

  1. 装饰器
  • 类装饰器
    • 以下是【替换被装饰的类 image.png

image.png - 装饰器工厂

image.png

  • 属性装饰器
  • 方法装饰器
  • 访问器装饰器
  • 参数装饰器