TS学习小记

77 阅读2分钟

参考:ts.xcatliu.com/advanced/cl…

类中的修饰符

  • public:修饰的属性和方法都是公有的,任何地方都可访问,默认是public
  • private:
    • 修饰的属性和方法都是私有的,不能在声明它的外部访问
    • 在子类中也不允许访问
    • 构造函数修饰为私有的,不允许被继承和实例化
  • protected
    • 修饰的方法和属性是受保护的
    • 允许在子类中访问
    • 构造函数修饰为受保护的,只允许被继承

参数属性

修饰符和readonly还可以使用在构造函数参数中,等同于类中定义该属性同时给该属性赋值,使代码更简洁。

class Animal {
  // public name: string;
  public constructor(public name) {
    // this.name = name;
  }
}

readonly

abstract抽象类

  • abstract用于定义抽象类和其中的抽象方法
  • 抽象类不允许实例化
  • 抽象类中的抽象方法必须被子类实现

Interfaces

  • 一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口(interfaces),用 implements 关键字来实现。
  • 接口可以继承接口
  • 接口可以继承类
  • 实际上,当我们在声明 class Point 时,除了会创建一个名为 Point 的类之外,同时也创建了一个名为 Point 的类型(实例的类型)
    •  当做一个类来用,使用 new Point 创建它的实例
    • 当做类型使用时,使用 : Point 表示参数的类型
      • 实例的类型当然不应该包括构造函数、静态属性或静态方法
    • 在接口继承类的时候,也只会继承它的实例属性和实例方法
  • 所以说当接口继承类时,实际上继承的是 类的 实例的类型