【TypeScript类简介以及使用方法】

TypeScript 引入了类的概念,允许使用面向对象的编程范式。类是对象的模板或蓝图,它定义了一组属性和方法,这些属性和方法被对象所共享。在 TypeScript 中,类提供了更结构化、可维护且可重用的代码方式。

TypeScript 类简介

  1. 属性:类中的变量称为属性(也称为字段或成员变量)。
  2. 方法:类中的函数称为方法(也称为成员函数)。
  3. 构造函数:一个特殊的方法,用于初始化新创建的对象。
  4. 继承:一个类可以从另一个类继承属性和方法。
  5. 访问修饰符:TypeScript 支持 publicprivateprotected 访问修饰符,用于控制成员的可访问性。
  6. 抽象类:不能被实例化的类,但可以被其他类继承。
  7. 静态属性和方法:属于类本身,而不是类的实例的属性或方法。

使用方法

  1. 定义类

使用 class 关键字定义类,并在大括号中定义属性和方法。

class Animal {
  public name: string;

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

  public speak(): void {
    console.log(`${this.name} makes a noise.`);
  }
}
  1. 实例化类

使用 new 关键字创建类的实例(即对象)。

let dog = new Animal('Buddy');
dog.speak(); // 输出: Buddy makes a noise.
  1. 访问修饰符

使用 publicprivateprotected 修饰符控制属性和方法的访问权限。

class Person {
  private _age: number; // 私有属性

  constructor(age: number) {
    this._age = age;
  }

  public getAge(): number { // 公有方法,用于访问私有属性
    return this._age;
  }
}

let person = new Person(30);
// person._age; // 错误:私有属性只能在类内部访问
console.log(person.getAge()); // 输出: 30
  1. 继承

使用 extends 关键字让一个类继承另一个类。

class Dog extends Animal {
  constructor(name: string) {
    super(name); // 调用父类的构造函数
  }

  public bark(): void {
    console.log(`${this.name} says woof!`);
  }
}

let d = new Dog('Spike');
d.speak(); // 输出: Spike makes a noise.
d.bark(); // 输出: Spike says woof!
  1. 抽象类

使用 abstract 关键字定义抽象类,它不能被实例化,但可以被其他类继承。

abstract class AnimalBase {
  public abstract speak(): void; // 抽象方法,必须在子类中被实现
}

class DogBase extends AnimalBase {
  public speak(): void {
    console.log('The dog speaks!');
  }
}

// new AnimalBase(); // 错误:抽象类不能被实例化
let dogBase = new DogBase();
dogBase.speak(); // 输出: The dog speaks!
  1. 静态属性和方法

在类上定义,而不是在类的实例上定义。

class MathUtils {
  static PI = 3.14159; // 静态属性

  static calculateArea(radius: number): number { // 静态方法
    return MathUtils.PI * radius * radius;
  }
}

console.log(MathUtils.PI); // 输出: 3.14159
console.log(MathUtils.calculateArea(5)); // 输出: 78.53975

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/611069.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vision Mamba:高效视觉表示学习双向状态空间模型,超越Vision Transformer!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model 引言:探索视觉领域的新方向 在计算机视觉领域&…

翻工第二次 Ant Design Pro 下载,发现问题,电脑网络配置有误,魔法了

一、相关网址链接 鱼皮的用户中心项目 (前端Ant Design Pro构建) 语雀 ## 没有选择umi版本这一步 Issue #11144 ant-design/ant-design-pro GitHub 关于umi ui图标未显示问题_umi ui不出现-CSDN博客 二、存在问题 导致下载速度慢 本人镜像代码写…

双向链表(详解)

在单链表专题中我们提到链表的分类,其中提到了带头双向循环链表,今天小编将详细讲下双向链表。 话不多说,直接上货。 1.双向链表的结构 带头双向循环链表 注意 这几的“带头”跟前面我们说的“头节点”是两个概念,实际前面的在…

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…

数据分析:基于sparcc的co-occurrence网络

介绍 Sparcc是基于16s或metagenomics数据等计算组成数据之间关联关系的算法。通常使用count matrix数据。 安装Sparcc软件 git clone gitgithub.com:JCSzamosi/SparCC3.git export PATH/path/SparCC3:$PATHwhich SparCC.py导入数据 注:使用rarefy抽平的count ma…

stm32单片机学习路线

第一步 编程及硬件基础知识 1.掌握C语言基础 作为STM32的主要编程语言,C语言的基础知识是必不可少的。建议通过书籍、在线课程或者教学视频系统地学习C语言的基础知识,包括语法、数据类型、函数、指针等。 2.了解电子电路基础 对于单片机开发来说&…

经开区创维汽车车辆交接仪式顺利举行,守护绿色出行助力低碳发展

5月10日,“创维新能源汽车进机关”交车仪式于徐州顺利举行,20辆创维EV6 II正式交付经开区政府投入使用。经开区陈琳副书记、党政办公室副主任张驰主任、经开区公车管理平台苑忠民科长、创维汽车总裁、联合创始人吴龙八先生、创维汽车营销公司总经理饶总先…

OpenHarmony 实战开发——移植通信子系统

通信子系统目前涉及Wi-Fi和蓝牙适配,厂商应当根据芯片自身情况进行适配。 移植指导 Wi-Fi编译文件内容如下: 路径:“foundation/communication/wifi_lite/BUILD.gn” group("wifi") {deps [ "$ohos_board_adapter_dir/ha…

asp.net mvc使用IHttpModule拦截所有请求,包括资源文件

目录 HttpApplication 类 添加App_Code文件夹 MyHttpModel2 Web.config添加配置,在iis模块中生效 项目发布后,察看注册的自定义模块 框架集:.NET Framework 4.7web框架:asp.net mvc 5 HttpApplication 类 HttpApplication 类…

数据库备份与恢复--06---MySQL集群高可用架构之MHA

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 MySQL集群高可用架构之MHA1.什么是MHAMHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件 ,m…

2024最新洗地机选购攻略!分享四款热门洗地机推荐

洗地机可以说是现代家庭生活中一大利器,它能帮我们快速搞定家里的地板清洁工作,省去了自己清洗滚刷的麻烦。不过,当下市面上洗地机品牌种类繁多,价格区间也相差悬殊,要选择一款性价比较高、使用体验较好的洗地机产品&a…

太阳能无人机的多元化应用

随着新能源技术的不断发展和成熟,太阳能在无人机的应用技术已经成熟。太阳能无人机得到了量产和广泛的应用。传统无人机相比,太阳能无人机无需燃油,运行费用低廉,搭载多种高科技设备,能够高效、多元化地采集和分析各类…

AI算法-高数3-导数-求导法则

P16 2.2 求导法则,宋浩老师:2.2 求导法则_哔哩哔哩_bilibili 反函数求导法则: 复合函数求导:剥洋葱法。

蜂群优化算法(bee colony optimization algorithm)

​注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法引言 自然界的启发:BSO算法的灵感来自于蜜蜂在自然界中的觅食行为。在自然界中,蜜蜂需要找到花蜜来生存。当一只蜜…

在做题中学习(53):寻找旋转数组中的最小值

153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode) 解法:O(logn)->很可能就是二分查找 思路:再看看题目要求,可以画出旋转之后数组中元素的大小关系: 首先,数组是具有二段性的(适配二分查…

车载测试系列:UDS诊断服务

UDS诊断服务介绍 UDS(Unified Diagnostic Services,统一诊断服务)诊断协议诊断测试仪和ECU之间一种通信协议,在ISO14229中规定。UDS被用在几乎所有由OEM一级供应商所制造的新ECU。 诊断工具与车内的所有ECU均有连接,…

IO 5.10

在一个进程中,创建一个子线程。 主线程负责:向文件中写入数据 子线程负责:从文件中读取数据 要求使用线程的同步逻辑,保证一定在主线程向文件中写入数据成功之后,子线程才开始运行,去读取文件中的数据#incl…

bash: docker-compose: 未找到命令

bash: docker-compose: 未找到命令 在一台新的服务器上使用 docker-compose 命令时,报错说 docker-compose 命令找不到,在网上试了一些安装方法,良莠不齐,所以在这块整理一下,如何正确快速的安装 docker-compose cd…

复习了好久的软考中项,现在上半年不考了,该怎么办?

如果有更多学习时间的话,可以考虑报考高级职称,因为高级和中级职称的很多知识点有重叠,只需要再复习一下相关论文就可以了。 从2024年下半年开始,集成考试将采用最新版教材和大纲,与高级职称的新版教材内容相似度很高…

【计算机毕业设计】springboot二手家电管理平台

时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,二手家电管理平台当然不能排除在外。二手家电管理平台是在实际应用和 软件工程的开发原理之上,运用java语言以及前台VUE框架&#xf…
最新文章