《前端之路》- TypeScript (四) class 中各类属性、方法,抽象类、多态

本文详细探讨了TypeScript中的类、继承、访问修饰符(public, private, protected)、静态方法以及继承与多态的概念。通过实例解析了ES5和ES6中的继承方式,包括类式继承、构造函数继承和组合式继承,并强调了TypeScript中多态的使用。文章旨在巩固JavaScript基础知识,为理解TypeScript打下坚实基础。" 109532063,10038182,使用Flask-SQLAlchemy操作数据库详解,"['Python', '数据库', 'Flask框架', 'SQLAlchemy']
摘要由CSDN通过智能技术生成

一、TypeScript 中的类

1、先来举个例子:

class Persons {

  name: any;

  age: number | undefined;

  constructor(name: string, age: number) {

    this.name = name;

    this.age = age;

  }

  getName(): void {

    console.log(`${this.name}今年已经${this.age}岁了`);

  }

}

let p11 = new Persons("za", 123);

console.log(p11.getName()); // za今年已经123岁了

  • 转换成 ES5 的代码后:

var Persons = /** @class */ (function() {

  function Persons(name, age) {

    this.name = name;

    this.age = age;

  }

  Persons.prototype.getName = function() {

    console.log(

      this.name + "\u4ECA\u5E74\u5DF2\u7ECF" + this.age + "\u5C81\u4E86"

    );

  };

  return Persons;

})();

var p11 = new Persons("za", 123);

console.log(p11.getName()); //  za今年已经123岁了

2、这里和我们使用 Es6 中的 class 有一些差别

// javascript 中 class 的定义

class An {

  constructor(name) {

    this.name = name;

  }

  getName() {

    console.log(this.name);

  }

}

var a = new An("zz");

a.getName(); // zz

3、差异在于,我们需要去定义 constructor 构造函数中传入的数据参数的类型

https://blog.csdn.net/lin123_00/article/details/106020831

二、TypeScript 中类的继承

class Animal {

  name: string | undefined;

  food: string;

  constructor(name: string, food: string) {

    this.name = name;

    this.food = food;

  }

  eat() {

    console.log(`${this.name}吃${this.food}`);

  }

}

class Cat extends Animal {

  constructor(name: string, food: string) {

    super(name, food);

  }

  jump() {

    console.log(`${this.name}正在跳`);

  }

}

let xiaohhua = new Cat("xiaohua", "猫粮");

console.log(xiaohhua.eat()); // xiaohua吃猫粮

console.log(xiaohhua.jump()); // xiaohua正在跳

这里和 ES6 中的 class 继承内容基本上没什么出入

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值