TypeScript类

TypeScript还将视为自己的类型:

class Foo { foo: number; }
class Bar { bar: string; }
class Baz { 
  constructor(foo: Foo, bar: Bar) { }
}
let baz = new Baz(new Foo(), new Bar()); // valid
baz = new Baz(new Bar(), new Foo());     // tsc errors

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

class Person {
  name: string;
  nickName?: string;
}

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

修饰符

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

  • public:类的每个成员默认为public,可以自由被访问。
  • private:类成员被标记为private时就不能在类的外部访问。
  • protected:protectedprivate行为很相似,但protected成员可以在派生类中访问。

继承与多态

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

TypeScript的继承与ES6基本一致。

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

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

下一节:泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。