TypeScript类成员的修饰符

news/2024/7/6 5:18:58
本节课我们来开始了解 TypeScript 的类成员字段和方法的修饰符。

一.成员方法修饰符

1. 在不加修饰符的情况下,成员字段和方法默认是公共 public 完全可见的状态;
2. 如果要在其设置一下不同的可见性,一共有三种方案:
(1) .public :默认设置,公有可见性;
(2) .protected :受保护的,自身和子类可访问;
(3) .private :私有的,只能自身访问;
PS :为什么要设置可放访问性,主要是为了保护类中属性和方法避免被污染;
PS :这里只演示成员字段即可,方法也是一个意思;
3. 在默认的情况下,成员字段是 public 修饰符,我们在类外可以直接赋值;
// 人类
class Person {
...
}
let p = new Person('Mr.Lee', 100)
// 直接截胡了
p.name = 'Mr.Zhang'
// 也可以直接取值
console.log(p.name)
console.log(p.run())

4. 如果设置了私有成员,那么就无法在类外进行取值赋值,进行有效的保护;
class Person {
private name : string
private age : number
}
PS:类外 p.name 赋值取值会直接报错;但这种私有化,子类就无法直接访问了;
// 成员字段私有化,子类如果要重写,就无法访问 this.name
class Man extends Person {
run() : string {
return this.name + '的年龄为:' + this.age
}
}

5. 如果有子类,并且需要对子类开放权限,那么就使用 protected 受保护的;
class Person {
protected name : string
protected age : number
}
PS:对于方法或构造方法,也可以使用这些修饰符,比如受保护的构造,就不能在外部调用了;
class Person {
protected name : string
protected age : number
// 构造方法
protected constructor(name : string, age : number) {
this.name = name
this.age = age
}
}
class Man extends Person {
constructor(name : string, age : number) {
super(name, age)
}
run() : string {
return this.name + '的年龄为:' + this.age
}
}


http://lihuaxi.xjx100.cn/news/1026412.html

相关文章

如何成为一名成功的 PHP 开发者

当今的网络应用开发市场,PHP 一直是其中最受欢迎的语言之一,许多优秀的网络应用程序都是由 PHP 开发人员设计和开发的。如果你想成为一名成功的 PHP 开发者,以下是几个关键步骤: 1. 学习基础知识 首先,你需要掌握 PH…

「业务架构」需求工程——需求验证(第4部分)

确保规定要求满足客户需求的过程。需求验证它是一个确保特定需求满足客户需求的过程。它关心的是找到需求中的问题。当这些问题在后期发现时,或者在系统投入使用后,这些问题会导致大量的返工成本。通过系统变更来修复需求问题的成本通常比修复设计或代码…

1384:珍珠(bead)

1384:珍珠(bead) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 有n颗形状和大小都一致的珍珠,它们的重量都不相同。n为整数,所有的珍珠从1到n编号。你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量…

拐点!智能座舱破局2023

“这是我们看到的整个座舱域控渗透率,2022年是8.28%,主力的搭载车型仍然是30-35万区间。”3月29日,2023年度(第五届)高工智能汽车市场峰会上,高工智能汽车研究院首发《2022-2025年中国智能汽车产业链市场数…

电商数仓—前言

项目流程图 1.数据仓库的概念 数据 业务数据 存储在mysql 处理事务过程中产生的数据例如:登录、下单、支付用户行为数据 日志文件(以文件形式) 用户与客户端产品交互过程中产生的数据通过埋点实现:代码埋点(前端/后…

【从零开始】Docker Desktop:听说你小子要玩我

前言 🍊缘由 捡起遗忘的Docker知识 由于本狗近期项目紧任务重,高强度的搬砖导致摸鱼时间下降。在上线项目时,看到运维大神一系列骚操作,dockerk8s的知识如过眼云烟,忘得干净的很。所以想重新恶补一下docker知识&…

垃圾回收器之CMS

CMS是一款基于“标记-清除”算法的垃圾回收器,用于老年代的回收。 CMS的大概处理流程为:初始标记-并发标记-重新标记-并发清除。为什么需要重新标记呢,因为在并发标记阶段,用户线程和标记线程同时运行,这时会出现之前…

数据库选择-MYSQL和MONGODB

MySQL: 关系型数据库 MongoDB: 非关系型数据库 MySQLMongoDBtablecollectionrowdocumentcolumnfiled 数据结构 MySQL:固定的数据结构,先创建数据库,必需的表,列,甚至为每列指定数据类型 MongoDB:文档集合…