TypeScript 中的类:面向对象编程的基础

🤍 前端开发工程师、技术日更博主、已过CET6

🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1

🕠 牛客 高级专题作者、打造专栏《前端面试必备》《2024面试高频手撕题》

🍚 蓝桥云课 签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

💬 前些天发现了一个巨牛的人工智能学习网站 ,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

文章目录

在 TypeScript 中,类(Classes)是实现面向对象编程(OOP)的基础。类允许你创建可重用的代码,通过封装、继承和多态等特性,TypeScript 类为开发者提供了强大的工具来构建复杂的应用程序。

什么是类?

类是创建对象的蓝图或模板。它定义了对象的属性(数据)和方法(行为)。在 TypeScript 中,类还支持类型注解,这有助于提高代码的可读性和可维护性。

创建类

在 TypeScript 中,你可以使用 class 关键字来创建一个类。

typescript 复制代码
class Greeter {
  greeting: string;

  constructor(message: string) {
    this.greeting = message;
  }

  greet() {
    return 'Hello, ' + this.greeting;
  }
}

在这个例子中,Greeter 是一个类,它有一个 greeting 属性和一个 greet 方法。

实例化类

你可以使用 new 关键字来创建类的实例。

typescript 复制代码
let greeter = new Greeter('world');
console.log(greeter.greet()); // 输出 'Hello, world'

在这个例子中,我们创建了一个 Greeter 类的实例,并调用了它的 greet 方法。

类的属性和方法

类可以包含属性和方法。属性是类的状态,方法是类的行为。

typescript 复制代码
class Employee {
  name: string;
  age: number;

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

  getAge() {
    return this.age;
  }
}

在这个例子中,Employee 类有两个属性 nameage,以及一个方法 getAge

继承

TypeScript 支持继承,这意味着你可以创建一个基于另一个类的类。子类继承父类的属性和方法。

typescript 复制代码
class Manager extends Employee {
  department: string;

  constructor(name: string, age: number, department: string) {
    super(name, age);
    this.department = department;
  }

  getDepartment() {
    return this.department;
  }
}

在这个例子中,Manager 类继承了 Employee 类,并添加了一个 department 属性和一个 getDepartment 方法。

访问修饰符

TypeScript 提供了访问修饰符(publicprotectedprivate),它们用于控制类成员的可见性。

typescript 复制代码
class Employee {
  private name: string;
  protected age: number;

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

  public getAge() {
    return this.age;
  }
}

在这个例子中,name 属性是私有的,只能在类内部访问。age 属性是受保护的,可以在类内部和子类中访问。getAge 方法是公共的,可以在任何地方访问。

结论

在 TypeScript 中,类是实现面向对象编程的基础。类允许你创建可重用的代码,通过封装、继承和多态等特性,TypeScript 类为开发者提供了强大的工具来构建复杂的应用程序。通过使用类,开发者可以创建更强大和灵活的代码,从而提高生产力和代码质量。

相关推荐
hpoenixf17 分钟前
一天上线 + 零返工:我如何给复杂前端需求建立“安全感”
前端
广州华水科技1 小时前
单北斗GNSS变形监测系统在水利工程安全保障中的应用与优势分析
前端
yqcoder1 小时前
CSS 外边距重叠(Margin Collapsing):现象、原理与完美解决方案
前端·css
山楂树の2 小时前
图像标注大坑:img图片 + Canvas 叠加标注,同步放大后标注位置偏移、对不齐?详解修复方案及亚像素处理原理
前端·css·学习·canva可画
本山德彪2 小时前
我做了一个拼豆图纸生成器,把照片秒变图纸
前端
DTrader2 小时前
用TS无法实盘量化? - 实盘均线策略
前端·api
进击的夸父3 小时前
vfojs:Vue 超集架构,外壳React灵魂Vue
前端
编程老船长3 小时前
解决不同项目需要不同 Node.js 版本的问题
前端·vue.js
Wect3 小时前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·算法·typescript
漫游的渔夫3 小时前
前端开发者做 Agent:别写成一次请求,用 5 步受控循环防止 AI 乱跑
前端·人工智能·typescript