typescript类的方法-TS 中的类实现

2023-10-01 0 2,910 百度已收录

类的基本用法

定义

TypeScript 是面向对象的 JavaScript。 类描述了所创建对象的共同属性和技能。 TypeScript 支持所有面向对象的功能,例如类、接口等。

课程内容如下:

class Person {
  // 需要先定义实例属性,才能够使用
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
  say(): void {
    console.log("hello world");
  }
}
let person = new Person("张三", 1);
person.say();

继承

TypeScript支持继承typescript类的方法,即我们在创建类时可以继承现有的类。 这个现有的类称为父类,继承它的类称为泛型。

类继承使用关键字extends。 泛型不但不能继承父类的私有成员(方法和属性)和构造函数,其他的都可以继承。

TypeScript 一次只能继承一个类,不支持多个类的继承。 但是,TypeScript 支持多重继承(A 继承 B,B 继承 C)。

句子格式如下:classchild_class_nameextendsparent_class_name

class Person {
  // 需要先定义实例属性,才能够使用
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
  say(): void {
    console.log("hello world");
  }
}
class Student extends Person {
  ID: number;
  constructor(name: string, age: number, ID: number) {
    super(name, age);
    this.ID = ID;
  }
  say(): void {
    super.say();
    console.log("重写后的方法");
  }
}
let stu = new Student("张三", 1, 111);
stu.say();

静止的

static关键字用于将类的数据成员(属性和技术)定义为静态静态成员可以通过类名直接调用。

class Person {
  static phone: number = 111111;
  static play(): void {
    console.log(`phone: ${Person.phone}`);
  }
}
Person.play();

类中的修饰符

class Person {
  public name: string;
  protected age: number;
  private sex: string;
  constructor(name: string, age: number, sex: string) {
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
  say(): void {
    console.log("hello world");
  }
}

getter 和 setter

另一个正式名称:accessor

通过 getter/setter 拦截对对象成员的访问

如果有 get 但没有 set,则该属性是手动只读的。

如果没有指定setter参数的类型typescript类的方法,则会从getter的返回类型推断。

访问器和设置器必须具有相同的成员可见性

class Person {
  private _name: string = "哈哈";
  get name(): string {
    console.log("get方法");
    return this._name;
  }
  set name(name: string) {
    console.log("set方法");
    this._name = name;
  }
}
let person = new Person();
person.name = "张三";
console.log(person);
console.log(person.name);

代表性的

abstract class Person {
  abstract name: string;
  abstract show(): string;
  showName() {
    console.log(this.show());
  }
}
class Student extends Person {
  name: string = "张三";
  show(): string {
    return "李四";
  }
}
let s = new Student();
console.log(s.show());

实施

使用可选属性实现套接字不会创建该属性

一个socket只要继承了某个类,就会继承该类中的所有属性和方法,并且只会继承属性和技术的声明,而不会继承属性和技术的实现。

与extends的区别​

extends:继承某个类。 继承后可以使用父类的方法,也可以重绘父类的方法。

Implements:实现某个socket,必须重绘后才能使用

interface IInfo {
  location: string;
}
interface ISchool {
  schoolName: String;
}
class Student implements IInfo, ISchool {
  schoolName: String = "中山大学";
  location: string = "广州";
}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript类的方法-TS 中的类实现 https://www.wkzy.net/game/198093.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务