TypeScript类

TypeScript还将类视为自己的类型:

  1. class Foo { foo: number; }
  2. class Bar { bar: string; }
  3. class Baz {
  4. constructor(foo: Foo, bar: Bar) { }
  5. }
  6. let baz = new Baz(new Foo(), new Bar()); // valid
  7. baz = new Baz(new Bar(), new Foo()); // tsc errors

像函数参数一样,类有时具有可选成员。 同样的?:语法可以用于class定义:

  1. class Person {
  2. name: string;
  3. nickName?: string;
  4. }

在上面的示例中,Person的实例保证有一个name,并且可以可选地具有nickName

修饰符

在类中修饰符分为三种:public 公有、private 私有和protected受保护。

  • public:类的每个成员默认为public,可以自由被访问。

  • private:类成员被标记为private时就不能在类的外部访问。

  • protected:protectedprivate行为很相似,但protected成员可以在派生类中访问。

继承与多态

封装,继承和多态是面型对象的三大特性。

TypeScript的继承与ES6基本一致。

多态是同一个行为具有多个不同表现形式或形态的能力。比如在各种程序中对键盘的同一个按键事件响应都不相同,这就是多态性。

实现多态的方法有:重写、接口、抽象类和抽象方法。