#typescript学习系列# 类

1.定义类

class Person{
    constructor(name:string){
        this.name = name;
    }
    name: string;
    getName():void{
        console.log(this.name);
    }
}
let p1 = new Person('fung');
p1.getName();

这个类有3个成员:一个叫做 name 的属性,一个构造函数和一个 getName 方法。

我们使用 new 构造了 Person 类的一个实例。它会调用之前定义的构造函数,创建一个  Person 类型的新对象,并执行构造函数初始化它。

2.存取器

TypeScript支持通过getters/setters来截取对对象成员的访问。 它能帮助你有效的控制对对象成员的访问。

  • 在 TypeScript 中,我们可以通过存取器来改变一个类中属性的读取和赋值行为
  • 构造函数

    • 主要用于初始化类的成员变量属性
    • 类的对象创建时自动调用执行
    • 没有返回值
class Person {
  constructor(name: string) {
    this.myname = name;
  }
  myname: string;
  get name(): string {
    return this.name;
  }
  set name(value) {
    this.name = value;
  }
}
let p1 = new Person("###");
p1.myname = "##++==";
console.log(p1.myname) //##++==

3.参数属性

class User {
    constructor(public myname: string) {}
    get name() {
        return this.myname;
    }
    set name(value) {
        this.myname = value;
    }
}

let user = new User('fung');
console.log(user.name); 
user.name = 'test'; 
console.log(user.name);

仅在构造函数里使用 public myname: string 参数来创建和初始化 name 成员。 我们把声明和赋值合并至一处。

参数属性通过给构造函数参数添加一个访问限定符来声明。 使用 public 限定一个参数属性会声明并初始化一个公有成员;对于 privateprotected 来说也是一样。

4.readonly

使用 readonly 关键字将属性设置为只读的。 只读属性必须在声明时或构造函数里被初始化。

TypeScript 的类型系统同样也允许将 interface、type、 class 上的属性标识为 readonly

readonly 实际上只是在 编译 阶段进行代码检查。而 const 则会在 运行时 检查(在支持 const 语法的 JavaScript 运行时环境中)

class Octopus {
    readonly name: string;
    readonly numberOfLegs: number = 8;
    constructor (theName: string) {
        this.name = theName;
    }
}
let dad = new Octopus("Man with the 8 strong legs");
dad.name = "Man with the 3-piece suit";

5.继承

6.类里的修饰符

7.静态属性/静态方法

8.装饰器

9.抽象类

10.抽象类 VS 接口

11.抽象方法

12.重写(override) VS 重载(overload)

13.继承 VS 多态

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章