typeScript中的class类


一、方法

1.简介

在 TypeScript 中,class 是一种支持面向对象编程的核心构造,它允许你定义对象的结构和行为。

2.基本结构

class ClassName {
  // 属性
  property: type;

  // 构造函数
  constructor(parameters) {
    // ...
  }

  // 方法
  method() {
    // ...
  }
}

3.属性

公共属性:默认所有属性都是公共的,可以在类的实例外部访问。
私有属性:使用 private 关键词,只能在类的内部访问。
保护属性:使用 protected 关键词,可以在类及其子类中访问。

class Person {
  // 公共属性
  fullName: string;

  // 私有属性
  private age: number;

  // 保护属性
  protected email: string;

  constructor(fullName: string, age: number, email: string) {
    this.fullName = fullName;
    this.age = age;
    this.email = email;
  }

  // 公共方法
  introduce() {
    console.log(`My name is ${this.fullName} and I am ${this.age} years old.`);
  }

  // 私有方法
  private celebrateBirthday() {
    this.age++;
    console.log(`Happy ${this.age}rd Birthday!`);
  }

  // 保护方法
  protected updateEmail(newEmail: string) {
    this.email = newEmail;
  }
}

const person = new Person('Alice', 30, 'alice@example.com');
person.introduce(); // My name is Alice and I am 30 years old.
// person.celebrateBirthday(); // Error: celebrateBirthday is private
// person.updateEmail('newemail@example.com'); // Error: updateEmail is protected

4.构造函数

用于创建和初始化类的一个新实例。
如果不指定构造函数,编译器会提供一个默认的构造函数。

class Car {
  make: string;
  model: string;
  year: number;

  // 构造函数
  constructor(make: string, model: string, year: number) {
    this.make = make;
    this.model = model;
    this.year = year;
  }
}

const myCar = new Car('Toyota', 'Corolla', 2021);

5.方法

类可以包含方法,方法可以访问类的属性。
方法也可以是 private 或 protected,以限制访问范围。

class Calculator {
  // 方法
  add(a: number, b: number): number {
    return a + b;
  }

  subtract(a: number, b: number): number {
    return a - b;
  }
}

const calc = new Calculator();
console.log(calc.add(5, 3)); // 8
console.log(calc.subtract(5, 3)); // 2

6.继承

使用 extends 关键字来创建一个类,该类基于另一个类。
子类可以覆盖父类的方法。

class Animal {
  move() {
    console.log("The animal is moving.");
  }
}

class Dog extends Animal {
  bark() {
    console.log("The dog is barking.");
  }
}

const dog = new Dog();
dog.move(); // The animal is moving.
dog.bark(); // The dog is barking.

7.存取器

使用 get 和 set 关键字来创建属性的存取器。

class User {
  private _name: string;

  constructor(name: string) {
    this._name = name;
  }

  get name(): string {
    return this._name;
  }

  set name(value: string) {
    this._name = value;
  }
}

const user = new User('Alice');
console.log(user.name); // Alice
user.name = 'Bob';
console.log(user.name); // Bob
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值