Typescript新特性关键字readyonly详细解读

readonly修饰符:首先是一个关键字,对类中的属性成员进行修饰,修饰后,该属性成员,就不能在外部被随意的修改了

一 构造函数中,可以对只读的属性成员的数据进行修改

(()=>{//定义一个类型class Person {//属性readonly name: string//构造函数constructor(name: string) {this.name = name}}//实例化对象const person: Person = new Person('小米6666')console.log(person)console.log(person.name)})()

二 如果构造函数中的没有任何参数,类中的属性成员此时已经使用readonly进行修饰了。那么外部也是不能对这个属性进行更改了

(()=>{//定义一个类型class Person {//属性readonly name: string//构造函数constructor() {}}//此时无法更改,因为name属性是只读的person.name='大肘子'console.log(person.name)})()

三 构造函数中的参数可以使用readonly进行修饰,一旦修饰了,那么该类中就有了这个只读成员属性了,外部可以访问,但是不能修改

构造函数中的参数,一旦使用readonly进行修饰后,那么该name参数可以叫参数属性
构造函数中的参数,一旦使用readonly进行修饰后,那么Person中就有了一个name的属性
构造函数中的参数,一旦使用readonly进行修饰后,外部也是无法修改类中的name属性成员值的

(()=>{//定义一个类型class Person {//构造函数中的参数,一旦使用readonly进行修饰后,那么该name参数可以叫参数属性//构造函数中的参数,一旦使用readonly进行修饰后,那么Person中就有了一个name的属性//构造函数中的参数,一旦使用readonly进行修饰后,外部也是无法修改类中的name属性成员值的constructor(readonly name: string='大反派') {this.name = name}}//实例化对象const person: Person = new Person('小米')console.log(person)person.name='大肘子'console.log(person.name)})()

四 构造函数中的参数可以使用public,privateprotected进行修饰,无论是哪个进行修饰,该类中都会自动的添加这么一个属性成员

(()=>{//定义一个类型class Person {//构造函数中的参数,一旦使用public进行修饰后,那么Person中就有了一个name的属性//    constructor(public name: string='大反派') {//         this.name = name//     }//构造函数中的参数,一旦使用private进行修饰后,那么Person中就有了一个name的属性// constructor(private name: string='大反派') {//     this.name = name// }//构造函数中的参数,一旦使用protected进行修饰后,那么Person中就有了一个name的属性成员了(只能在本类和派生类中访问以及使用)constructor(protected name: string='大反派') {this.name = name}}//实例化对象const person: Person = new Person('小米')console.log(person)person.name='大肘子'console.log(person.name)
})()

建议读者复制上面代码运行,查看浏览器打印情况,结合文章解析能更深入了解。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux tty 终端

linux tty 终端 一、终端二、终端的类型1、虚拟终端2、伪终端 pty3、串口终端4、控制终端 三、内核中的终端1、open2、write3、read1. 读取数据2. 数据返回3. 常见的 termios 四、编程实验 作者: baron 个人博客: baron-z.cn 基于网站原因csdn上面的图片有压缩, 如果不是很清楚…

在 vscode + cmake + GNU 工具链的基础上配置 JLINK

安装 JLINK JLINK 官网链接 下载安装后找到安装路径下的可执行文件 将此路径添加到环境变量的 Path 中。 创建 JFlash 项目 打开 JFlash,选择新建项目 选择单片机型号 在弹出的窗口中搜索单片机 其他参数根据实际情况填写 新建完成: 接下来设置…

智能建筑时代的核心选择——基于SAIL-RK3576核心板的AI边缘计算网关方案

随着智能建筑技术的不断发展,建筑设备正日益向“智慧化”迈进。传统的建筑管理系统往往依赖中央服务器和云端平台进行数据处理和控制,但在实时监控、安防及能耗管理等关键环节,延迟和数据安全问题依然存在。此外,物联网设备数量激…

python列表如何不重复

python列表不重复的方法: python内置的set()方法可以去掉列表里面重复的元素,调用该方法就可以让python列表不重复了 a [23, 15, 15, 56, 89, 89, 56] a set(a) print(a) 运行结果如下:

【Redis】事务的概念及用法

事务的概念及用法 什么是事务事务的操作开启事务(MULTI)执行事务(EXEC)中止事务(DISCARD)为事务提供检查(WATCH)取消对key的监控(UNWATCH) 为什么Redis不支持…

为AI聊天工具添加一个知识系统 之54 为事务处理 设计 基于DDD的一个 AI操作系统 来处理维度

本文要点 要点 Architecture程序 它被设计为一个双面神结构的控制器,它的两侧一侧编译执行另一侧 解释执行,自已则是一个 翻译器--通过提供两个不同取向之间 的 结构映射的显示器(带 图形用户接口GUI和命令行接口CLI 两种 接口&#xff09…

两份PDF文档,如何比对差异,快速定位不同之处?

PDF文档比对是通过专门的工具或软件,自动检测两个PDF文件之间的差异,并以可视化的方式展示出来。这些差异可能包括文本内容的修改、图像的变化、表格数据的调整、格式的改变等。比对工具通常会标记出新增、删除或修改的部分,帮助用户快速定位…

Flutter:搜索页,搜索bar封装

view 使用内置的Chip简化布局 import package:chenyanzhenxuan/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:get/get.dart; import package:tdesign_flutter/tdesign_flutter.dart;import i…

深度学习基础知识

深度学习是人工智能(AI)和机器学习(ML)领域的一个重要分支,以下是对深度学习基础知识的归纳: 一、定义与原理 定义:深度学习是一种使计算机能够从经验中学习并以概念层次结构的方式理解世界的机…

【Elasticsearch】腾讯云安装Elasticsearch

Elasticsearch 认识Elasticsearch安装Elasticsearch安装Kibana安装IK分词器分词器的作用是什么?IK分词器有几种模式?IK分词器如何拓展词条?如何停用词条? 认识Elasticsearch Elasticsearch的官方网站如下 Elasticsearch官网 Ela…

Ubuntu 24.04 LTS 通过 docker 安装 nextcloud 搭建个人网盘

准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker DesktopUbuntu 24.04 LTS 安装 tailscale [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 nextcloud 参考 Ubuntu24.04系统Docker安装NextcloudOnlyoffice _。 更…

ThinkPHP 8的多对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

Spring Boot 整合 Knife4j:打造更优雅的 API 文档

在现代 Web 应用开发中,API 文档的重要性不言而喻。清晰、准确、易用的 API 文档不仅可以方便开发者理解和使用 API,还能提高团队协作效率。Knife4j 是一个基于 Swagger 的增强型 API 文档工具,它可以为 Spring Boot 项目生成美观、易于交互的…

计算机网络 (53)互联网使用的安全协议

一、SSL/TLS协议 概述: SSL(Secure Sockets Layer)安全套接层和TLS(Transport Layer Security)传输层安全协议是工作在OSI模型应用层的安全协议。SSL由Netscape于1994年开发,广泛应用于基于万维网的各种网络…

如何利用边缘节点服务打造极致用户体验?

随着互联网和数字化技术的飞速发展,用户对网络访问速度和服务体验的要求也在不断提高。在一个信息快速传播的时代,延迟过高或访问卡顿的问题会直接影响用户体验,甚至导致用户流失。因此,企业如何优化网络性能、提升用户访问速度&a…

React的应用级框架推荐——Next、Modern、Blitz等,快速搭建React项目

在 React 企业级应用开发中,Next.js、Modern.js 和 Blitz 是三个常见的框架,它们提供了不同的特性和功能,旨在简化开发流程并提高应用的性能和扩展性。以下是它们的详解与比较: Next、Modern、Blitz 1. Next.js Next.js 是由 Ve…

如何在龙蜥 OS(AliOS)上安装极狐GitLab?

本文分享如何在龙蜥操作系统(AliOS)(包括 RHCK 和 ANCK 两种,两种方式的安装流程一样)上安装极狐GitLab? 前提条件 一个安装了龙蜥操作系统的云服务器 可以查看 /etc/os-release中的信息,确认…

if_yellow_only_restart_upgrading_nodes_with_unassigned_replicas

目录标题 遇事不决,上githubif_yellow_only_restart_upgrading_nodes_with_unassigned_replicas问题分析如何解决并使集群恢复到正常状态1. **检查和分配未分配的副本分片**2. **查看节点日志**3. **检查资源配置**4. **手动升级节点**5. **修改 if_yellow_only_res…

springboot中DTO、VO、Entity相互转换

在我们平时开发中,dto、vo、entity之间的相互转换是很频繁的操作,这篇就简单记录一下我在平时开发中转换的方法。 在这之前先简单描述一下dto、vo、entity DTO:一般我们在开发中会定义数据传输对象(Data Transfer Object, DTO&am…

第四十七章 Spring之假如让你来写MVC——闪存管理器篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…