千家信息网

TypeScript只读修饰符怎么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"TypeScript只读修饰符怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"TypeScript只读修饰符怎么用"文章能帮助大家解决问
千家信息网最后更新 2026年11月03日TypeScript只读修饰符怎么用

这篇文章主要介绍"TypeScript只读修饰符怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"TypeScript只读修饰符怎么用"文章能帮助大家解决问题。

前言

在Typescript 2.0中,引入了readonly关键字,可以对类中的属性进行修饰,作用是:该属性被readonly修饰之后无法修改**(如需修改,在构造函数中可以对只读属性进行修改)**。

我们可以直接在interface和type中直接使用readonly。

我们来看一个简单的例子:我们定义一个User type

type User={   readonly  name : string;   readonly  age  : number}

我们可以创建一个user,并且初始化一个具体的值。

let user:User={    name:'搞前端的半夏',    age:18}

如果我们去修改age的值,编译器会直接报错。

user.age=19

只读函数参数

在JS中,我们会经常使用const来定义变量,但是const无法保证Object内部的属性不被改变。还是上面的User type,

我们有一个函数接受User type的参数。我们在函数内部修改age属性,编译直接出错。

这样的好处是:我们可以确定这里定义的全局user,无法被改变

let user:User={    name:'搞前端的半夏',    age:18}UserInfo(user)
function UserInfo(user:User){    user.age=19    console.log(user.name,user.age)}

如何更改函数

只读类属性

readonly修饰符还可以应用在类中声明的属性。这里我们创建了一个User类,具有只读的name和age,请注意这里的name和age是没有初始值的。

class User {    readonly name: string;    readonly age: number;    constructor(name: string, age: number) {        this.name = name;        this.age = age;    }    UserInfo(user:User){        console.log(user.name,user.age)    }}

我们创建一个user实体,使用new方法创建对象的同时,给name和age添加默认值,由此可以得出结论

在类的constructor中,我们可以修改只读属性的值

name和age是只读的,我们可以获取具体的值。

let user =new User('搞前端的半夏',18)console.log(user.name)console.log(user.age)

但是,如果尝试修改name和age的值,会编译出错。

我们尝试在UserInfo中修改name和age:

   UserInfo(user:User){        this.age=20        console.log(user.name,user.age)    }

可以看到,编译仍然是错误的!我们可以得出结论

在类中的普通方法 无法 修改 被readonly的属性

只读索引

可以使用readonly来标记索引。例如下面的ReadonlyArray,可以有效的防止给具体的索引分配具体的值。

interface ReadonlyArray {  readonly length: number;  // ...  readonly [n: number]: T;}

因为是只读的索引,所以下面的赋值操作,会编译出错。

const readonlyArray: ReadonlyArray = [2, 3, 5, 7];readonlyArray[4] = 11;

关于"TypeScript只读修饰符怎么用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

属性 函数 编译 索引 前端 半夏 方法 知识 面的 参数 结论 行业 尝试 不同 实用 普通 有效 作用 例子 全局 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 今日互联网科技 金融科技 互联网金融 互联网女皇 腾讯科技 一五八零互联网科技 居家互联网科技有限公司 隆华科技工业互联网 央行互联网金融科技公司 互联网科技革命什么开始 辽宁互联网新科技 互联网媒体平台算高科技产业 链环科技传统企业怎么转型互联网 健康食品互联网创新科技园项目 互联网金融科技展 中国科技创新与世界互联网大会 为客找房互联网科技公司怎么样 上海创道互联网络科技有限公司 珠海东科互联网科技有限公司 普陀区互联网教育科技管理办法 陕西彩京云互联网科技有限公司 科技发展第三阶段互联网时代 上海挚品互联网科技有限公司 互联网科技公司排名 互联网科技公司起名 涨乐互联网科技 海南科技产业互联网平台 云创客互联网科技公司 恒银科技与互联网金融 广州慧亚互联网科技怎么样 威龙国际互联网科技公司 互联网第三次科技革命特征
0