美文网首页
TypeScript 类

TypeScript 类

作者: peroLuo | 来源:发表于2019-12-16 16:17 被阅读0次

类常用的语法:

  1. extends与super
  2. private、public、protected、readonly
  3. get、set
  4. 抽象类

1.extends与super

class Animal {
    name: string;
    constructor(theName: string) { this.name = theName; }
    move(distanceInMeters: number = 0) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}
class Snake extends Animal {
    constructor(name: string) { super(name); }
    move(distanceInMeters = 5) {
        console.log("Slithering...");
        super.move(distanceInMeters);
    }
}
let sam = new Snake("Sammy the Python");

2. private、public、protected、readonly

class Animal {
    public name: string; // 都可以访问
    private age: number;// 类的内部可以访问
    protected color: string; // protected的属性,可以在派生类中访问
    readonly other: string; //只读属性
}
  1. 类的属性默认是public。
  2. private属性不能被声明的类访问。
  3. protected不能类外访问该属性,但可以通过实例方法访问到该属性。

3. get set(通过get、set函数声明该属性)

let passcode = "secret passcode";
class Employee {
    private _fullName: string;
    get fullName(): string {
        return this._fullName;
    }
    set fullName(newName: string) {
        if (passcode && passcode == "secret passcode") {
            this._fullName = newName;
        }
        else {
            console.log("Error: Unauthorized update of employee!");
        }
    }
}
let employee = new Employee();
employee.fullName = "Bob Smith";
if (employee.fullName) {
    alert(employee.fullName);
}

4. 抽象类

abstract class Department {
    constructor(public name: string) {
    }
    printName(): void {
        console.log('Department name: ' + this.name);
    }
    abstract printMeeting(): void; // 必须在派生类中实现
}

class AccountingDepartment extends Department {
    constructor() {
        super('Accounting and Auditing'); // 在派生类的构造函数中必须调用 super()
    }
    printMeeting(): void {
        console.log('The Accounting Department meets each Monday at 10am.');
    }
    generateReports(): void {
        console.log('Generating accounting reports...');
    }
}

let department: Department; // 允许创建一个对抽象类型的引用
department = new Department(); // 错误: 不能创建一个抽象类的实例
department = new AccountingDepartment(); // 允许对一个抽象子类进行实例化和赋值
department.printName();
department.printMeeting();
department.generateReports(); // 错误: 方法在声明的抽象类中不存在

相关文章

  • TypeScript——类

    对类的使用:

  • Typescript —— 类

    类: 上面生成的按钮,点击的结果是“Hello,world”,上面例子中声明一个Greeter类。这个类有3个成员...

  • TypeScript类

    继承和多态 之前的JavaScript是基于原型(prototype)继承来实现可复用的“类”,而TypeScri...

  • TypeScript类

    javascript提供构造函数和原型的方式来构造复用组件; TypeScript提供类的概念;共同点都要实例化;...

  • typescript 类

    日期: 2019 年 9 月2 日 类 类的例子 继承 基于类的程序设计中一种最基本的模式是允许使用继承来扩展现有...

  • TypeScript 类

    类常用的语法: extends与super private、public、protected、readonly g...

  • TypeScript——类

    传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就...

  • TypeScript -- 类

    一 ,继承和成员修饰符 注意:类的属性都是实例属性而不是原型属性;方法是原型上的;类里面的属性都需要有初始值 成员...

  • TypeScript 类

    类 对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象...

  • TypeScript类

    下面看一个使用类的例子: 我们声明一个Greeter类。这个类有3个成员:一个叫做greeting的属性,一个构造...

网友评论

      本文标题:TypeScript 类

      本文链接:https://www.haomeiwen.com/subject/mghdnctx.html