基本类型

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内的方法

  1. class xxx extends xxx implements xxx

函数类型(function)

重载:

  • 函数合并
  • 规范参数