当前位置: 首页 > news >正文

TS中private和protected的区别

在 TypeScript 中,private 和 protected 是两种访问修饰符,用于限制类成员(如属性、方法等)的可见性和可访问性。它们的主要区别在于访问权限的宽松程度。

1. private

当一个类的成员被标记为 private 时,它只能在该类内部被访问。换句话说,private 成员对于该类的实例或子类都是不可见的,也不能被访问。

class MyClass {  private myProperty: string;  constructor() {  this.myProperty = "Hello, private!";  }  public getMyProperty(): string {  return this.myProperty;  }  
}  const obj = new MyClass();  
console.log(obj.myProperty); // 错误:'myProperty' 是私有的,不能在类外部访问

2. protected

protected 成员对于该类及其子类是可见的,但对于该类的实例或外部代码是不可见的。这意味着子类可以访问和修改 protected 成员,但类外部的代码不能。

class MyClass {  protected myProperty: string;  constructor() {  this.myProperty = "Hello, protected!";  }  
}  class MySubClass extends MyClass {  public displayProperty() {  console.log(this.myProperty); // 正确:'MySubClass' 可以访问 'MyClass' 中的 'protected' 成员  }  
}  const obj = new MyClass();  
console.log(obj.myProperty); // 错误:'myProperty' 是受保护的,不能在类外部访问  const subObj = new MySubClass();  
subObj.displayProperty(); // 正确:'MySubClass' 的方法内部可以访问 'protected' 成员

总结:

private:只有类内部可以访问。
protected:类内部和子类可以访问。

相关文章:

TS中private和protected的区别

在 TypeScript 中,private 和 protected 是两种访问修饰符,用于限制类成员(如属性、方法等)的可见性和可访问性。它们的主要区别在于访问权限的宽松程度。 1. private 当一个类的成员被标记为 private 时,它只能在该…...

虚拟机Hyper-V操作记录

问题1:安装Hyper-V,虚拟机监控程序无法打钩,提示该固件的虚拟化支持被禁用 主板型号:华硕ASUS ROG STRIX Z390-E GAMING 解决方法:进入BIOS,Advanced/CPU Configuration/Intel(VMX) Virtualization Technol…...

90. 子集 II(力扣LeetCode)

文章目录 90. 子集 II题目描述回溯算法 90. 子集 II 题目描述 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 …...

202435读书笔记|《半小时漫画中国史》——读点经济学与历史,生活更美好,趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有

202435读书笔记|《半小时漫画中国史》——读点经济学与历史,生活更美好,趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有 1. 土地政策、度量衡及税收2. 商鞅变法3. 西汉经济4. 西汉盐铁大辩论5. 西汉丝绸之路 《半小时漫画中国史:经济…...

2023下半年主品牌锋芒依旧,江南布衣打破既定天花板?

在过去的2023年里,服装板块令人意外的领涨消费大盘,国家统计局数据显示,上半年服装零售额同比增长12.8%,远超商品零售大盘的增速6.8%。 整体表现强劲的同时,“局部”表现是否也尽如人意。近日,作为时尚服装…...

Gitlab: PHP项目CI/CD实践

目录 1 说明 2 CI/CD 2.1 部署方式一:增量部署 2.1.1 目标服务器准备 2.2.2 Gitlab及Envoy脚本 2.2 部署方式二:镜像构建与部署 2.2.1 推送到私有化容器仓库 准备工作 脚本 要点 2.2.2 推送到hub.docker.com 准备工作 脚本 3 参考&#x…...

c语言游戏实战(10):坤坤的篮球回避秀

前言: 这款简易版的球球大作战是博主耗时两天半完成的,玩家需要控制坤坤在游戏界面上移动,来躲避游戏界面上方不断掉下来的篮球。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代…...

初学arp欺骗

首先准备一台靶机这里用虚拟机的win10 已知网关与ip地址(怕误伤) 现在返回kali从头开始 首先探测自己的网关 然后扫内网存活的ip 发现有3台 用nmap扫一下是哪几台 成功发现我们虚拟机的ip 现在虚拟机可以正常访问网络 接下来直接开梭 ip网关 返回虚拟机…...

ftp几个常见错误问题及解决办法

1、无法上传网页,FTP故障-提示“无法连接服务器”错误。 问题出现原因:FTP客户端程序设置问题,客户上网线路问题,ftp服务器端问题。 处理方法:建议客户使用CUTPFTP软件来上传客户的网页,在“F…...

鸿蒙App开发新思路:小程序转App

国家与国家之间错综复杂,在谷歌的安卓操作系统“断供”后,鸿蒙系统的市场化&独立化的道路便显而易见了。 2024年1月18日,华为宣布,不再兼容安卓的“纯血鸿蒙”--HarmonyOS NEXT鸿蒙星河版最终面世,并与2024年Q4正…...

C++17之std::invoke: 使用和原理探究(全)

C进阶专栏:http://t.csdnimg.cn/5mV9r 目录 1.概述 2.辅助类 3.原理分析 4.总结 1.概述 在之前的 C 版本中,要调用不同类型的可调用对象,需要使用不同的语法,例如使用函数调用运算符 () 来调用函数或函数指针,使用…...

shadertoy 游戏《来自星尘》摇杆复刻

正确的做法应该是上 noise 而不是叠加 sin 波,不过如果不想麻烦的话叠波还是一个不错的选择:整体效果如下,已经非常形似 直接上链接:Shader - Shadertoy BETA float radiusScale 0.9; float variation(vec2 v1, vec2 v2, float …...

获取PDF中的布局信息——如何获取段落

PDF解析是极其复杂的问题。不可能靠一个工具解决全部问题,尤其是五花八门,格式不统一的PDF文件。除非有钞能力。如果没有那就看看可以分为哪些问题。 提取文本内容,提取表格内容,提取图片。我认为这些应该是分开做的事情。python有…...

Laya2.13.3在Web条件下使用键盘控制相机移动

需求:在Laya开发时,常常没法移动相机来观察场内的环境,故制作一个移动相机的脚本来是实现此功能,目前先使用键盘后续会添加鼠标控制移动旋转等功能。 onEnable(){this.camera new Laya.Camera(0, 0.1, 100);this._tempVector3 n…...

centos系统服务器在Jenkins执行playwright UI自动化测试框架

centos系统服务器在Jenkins执行playwright UI自动化测试框架 1. centos7.9系统中安装playwright环境报错 playwright/driver/node: /lib64/libc.so.6: version `GLIBC_2.25 not found经过查找资料,playwright 仅支持Ubuntu系统,其他的Linux服务器系统不支持,为此采用docke…...

boost.redis崩溃的解决方法

使用boost.redis的协程一定要co_spawn在strand对象中。 正确的用法: boost::asio::co_spawn(boost::dasio::make_strand(ioc),XXXCoroutine(),boost::asio::detached ); 错误的用法: boost::asio::co_spawn(ioc,XXXCoroutine(),boost::asio::detache…...

蓝桥杯——123

123 二分等差数列求和前缀和数组 题目分析 连续一段的和我们想到了前缀和,但是这里的l和r的范围为1e12,明显不能用O(n)的时间复杂度去求前缀和。那么我们开始观察序列的特点,可以按照等差数列对序列进行分块。如上图,在求前10个…...

嵌入式基础知识-信号量,PV原语与前趋图

本篇来介绍信号量与PV原语的一些知识,并介绍其在前趋图上的应用分析。本篇的知识属于操作系统部分的通用知识,在嵌入式软件开发中,同样会用到这些知识。 1 信号量 信号量是最早出现的用来解决进程同步与互斥问题的机制(可以把信…...

代码遗产:探索祖传代码的历史、挑战与现代融合艺术

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…...

Vue3:用vite创建Vue3项目

一、简介 vite是新一代前端构建工具,官网地址:https://vitejs.cn vite的优势如下: 轻量快速的热重载(HMR),能实现极速的服务启动。对 TypeScript、JSX、CSS 等支持开箱即用。真正的按需编译,不…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...