TypeScript - 类 Classes

75 阅读2分钟

类可以说是面向对象编程中一个最重要的概念,关于类的作用这里再简单描述下。类就是用来描述一类具体事物的抽象特征,以生活角度去举例。例如手机就属于类型,这个类型的特征就是能够打电话、发短信。在了个类型下面有很多的子类,这些子类一定会满足父类的所有特征然后再多出来一些额外的特征。例如智能手机它除了可以打电话、发短信它还能够使用一些 app。类是不能够被直接使用的,而是去使用属于这个类的具体事物。类比到程序当中类也是一样的它可以用来去描述,一类具体对象的一些抽象程序。在 ES 6以前 JS 都是通过函数配合原型去模拟实现的类,从 ES6 开始 JS 中就有了专门的 class 。而在 TS 中我们除了可以使用所有 ES 标准当中所有类的功能,它还添加了一些额外的功能和用法。例如对类的成员有特殊的访问修饰符,还有一些抽象类的概念。在 TS 中额外多出来的新的类的一些特性有:

  • 在 TS 当中我们需要明确在类当中去声明所拥有的一些属性,而不是直接在构造函数当中动态通过 this 去添加。在类中去声明属性的方式就是直接在类当中去定义,这个语法是 ES2016 中定义的。这么做的目的就是,为了给属性去做一些类型的标注。除此之外仍然可以按照 ES6 标准当中的语法为类声明一些方法,在声明的方法当中仍然可以使用函数类型注解的方式去限制参数的类型和返回值的类型。在方法的内部也同样可以使用 this 去访问 当前实例对象也就可以访问到对应的属性。

    calss Person { name: string age: number constructor (name:string, age:number) { this.name = name this.age = age } sayHi (msg:string):void { console.log(Hi, my name is ${this.name}, ${msg}) } }