TypeScript2|青训营笔记

58 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 18 天

  • 继承:extends

    • 语法:class B extends A{ .... }
    • 子类有父类的属性与函数方法(包括构造方法),同时子类还可以重写父类中的方法。类似于java
    • 在类的方法中,super表示当前类的父类
    • 当子类重写构造函数时,必须保证在子类的构造函数中调用父类的构造函数,目的是确定继承的完整性
  • 抽象类 abstract

    • 语法:abstract class A{....}
    • 作用:抽象类只能用于被继承,无法被实例化
  • 抽象方法:abstract xxxx()

    • 抽象方法用abstract开头,没有方法体
    • 当子类继承抽象类后,必须对其中的抽象方法进行重写
  • 接口:interface

    • 语法:interface xxx{ ... }
    • 实现接口:class A implements xxx{....}
    • 接口只定义对象的结构,而不考虑其实际值。在接口中的所有属性和方法都是抽象的,不能有实际值
  • 封装属性

    • 定义:在TS中,为了保证类的安全,我们在声明类中属性时可以在前追加修饰符---public、protected、private

      • public:默认。公开,所有环境都可以直接访问与修改该属性值
      • protected:仅有父类以及其子类可以直接访问与修改该属性值
      • private:仅有类本身可以访问,修改通常需要通过getter/setter方法
    • 在TS中我们可以给属性定义getter/setter方法来完善对其属性值的修改,比如修改年龄age,我们可以通过setter方法来判定修改的值是否大于0才允许修改

  • 泛型:代指不确定的类型或多个类型

    • 在定义类或函数时,如果遇到类型不明确的就可以使用泛型

    • 语法: function 方法名(参数:T):T{...}

    • 调用:

      • 自动检测类型

      • 主动设置类型

    • 多个泛型方法

    • 泛型还可以继承 ,比如说 function fn4(a:T):T{ .... }

      • 其中myClass是我自定的类,这里的泛型需要是myClass的实现类、子类....