基本类型
boolean、number、string、void、undefied、null、symbol、biginit
其他类型
- 顶级类型
any
unknown 会安全很多 在类型确定前无法直接使用(结合类型守卫) - 底部类型
never 任何类型的子类型 可以赋值给任何类型,任何类型不可赋值给never。
常用于(异常函数、永远的空数组) - 数组
- 元组
类型数组 - Object
枚举类型(enum)
定义:当一个变量有几种可能的取值的时候,可以将他定义为枚举类型。
类型:
- 数组枚举 默认从0开始 依次累加
- 字符串枚举
- 异构枚举
特点:反向映射
本质:键值对对象。或者可以理解为一个立即执行函数,传入枚举类型,构造成反向映射的对象。
支持类型合并(个人感觉无用)
namespace添加静态方法 (相当于枚举的扩展方法)
接口(interface)
可选:?
只读:readonly
函数类型
属性检查
- 类型断言 as
- 字符串索引前面
- 自变量赋值给另外一个变量
可索引类型
[propName:sring]:any (可带任意属性)
继承接口 extends 接口复用
类型别名(type)
interface和type有啥区别
type 可以声明基本类型、元组、联合类型、对象、交叉类型
interface只能声明对象类型、接口可以合并、可以实现接口的继承和实现
interface的继承用extends type继承用&
类(class)
抽象类、基类(abstract) 不可实例化 基本用来定义一个模板
访问限定符:public(默认) private(内部访问) protected (子类能访问)
interface和class的区别
interface只做成员的申明
class声明类型并实现interface内的方法
class xxx extends xxx implements xxx
函数类型(function)
重载:
- 函数合并
- 规范参数
