TypeScript学习笔记

136 阅读2分钟

数据类型:

  • 8种数据类型:7种原始数据类型:Boolean,Null,Undefined,Number,BigInt,String,SymBol和Object。其中undefined和null是其他原始类型的子类型。
  • any类型:任意类型。

:是干什么用的:

声明数据类型

类数组和元组:

  • 类数组:有length属性,但不是数组。(eg: arguments就是类数组)
  • 元组:限制了数据类型的数组。

interface接口

  • 关键字implements:接口的实现。
  • 首字母加I表示这是interface。
  • ?表示可选属性,readonly表示只读属性。

联合数据类型和类型断言

  • 联合类型(union types):eg:let numberOrString : number | string
  • 类型断言(as 关键字)const str = numberOrString as string

  • 关键字extends:类的继承。
  • 类(Class):定义了一切事物的抽象特点。
  • 对象(Object):类的实例。
  • 面向对象(OOP)三大特性:封装、继承(extends)、多态。
  • 类的三种修饰符:Public(属性或方法是共有的)、Private(属性或方法是私有的)、Protected(属性或方法是受保护的)。
  • constructor:构造函数,类实例化的时候执行的逻辑。继承的时候需要重写构造函数时需要super() 。(super就是实例化父类)

extends(继承)和 implements(实现)

因为类可以作为接口使用,或者说因为类同时实现了接口,所以 TypeScript 中可以有如下关系:

  • 类继承类
  • 接口继承接口/类
  • 类实现接口/类

枚举(enum)

关键字enum:定义枚举

  • 定义一系列相关的元素。
  • 默认第一个枚举值为0,后面依次递增。
  • const定义为常量枚举。
  • 可以直接用下标取值。

泛型

  • 在定义的时候不指定数据类型,在使用的时候才指定function test <T>(arg: T): T {return arg;}
  • 约束泛型:要求传入的泛型必须满足某个条件。

类型别名、字面量和交叉类型

  • 类型别名:关键字type 为一个很复杂的类型方式创建一个快捷写法。
  • 字符串字面量:关键字type提供一系列方便的写法。
  • 交叉类型:将集中类型合并起来,关键字&

声明文件

  • *.d.ts结尾
  • 关键字declare