- string是小写
- never的用法
- unknown可以预先声明未知字段类型,编译阶段无法通过
- object只能存【非原始类型】,Object可以存能调用到Object方法的类型【也就是除了null、undefined,其他都可以】
- 声明对象类型
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
- type 声明类型
- 联合类型
- 交叉类型
- 属性修饰符
- public
- protected
- private
- readonly => public readonly color: string
- 什么时候使用抽象类
- interface 和 type 都可以声明结构体
- 泛型
17. 类型声明文件
- 装饰器
- 类装饰器
- 以下是【替换被装饰的类
- 以下是【替换被装饰的类
- 装饰器工厂
- 属性装饰器
- 方法装饰器
- 访问器装饰器
- 参数装饰器