1、const 用于变量, readonly 用于属性; 2、const 在运行时检查, readonly 在编译时检查 3、const 声明的变量不得改变值,这意味着,const 一旦声明变量,就必须立即初始化,不能留到以后赋值;readonly 修饰的属性能确保自身不能修改属性,但是当你把这个属性交给其它并没有这种保证的使用者(允许出于类型兼容性的原因...
readonly 标记的属性只能在声明时或类的构造函数中赋值。之后将不可改(即只读属性),否则会抛出 TS2540 错误。与 ES6 中的 const 很相似,但 readonly 只能用在类(TS 里也可以是接口)中的属性上,相当于一个只有 getter 没有 setter 的属性的语法糖。
架构迭代阶段 为了更好地控制类型的变化和状态,我们经过几轮架构迭代逐步引入对const和readonly的使用。以下是关键的代码变更: -let user = { name: "Alice", age: 25 };+const user = { name: "Alice", age: 25 }; 1. 2. 技术演进时间线 2023-01-012023-01-082023-01-152023-01-222023-01-292023...
而readonly则更适用于那些需要明确声明为不可修改的类属性,比如配置对象或状态管理的实现。 6. 区别总结 7. 关系图示意 以关系图的形式展示const与readonly之间的关系,有助于形成整体理解: CONSTstringnameintageREADONLYstringnameintagedefines relationship 在这个关系图中,const和readonly之间的关系被清晰地表示出来,...
TypeScript 中 const 和 readonly 的区别 常量 只读 它用于声明其值在整个代码中不能更改的常量。 它用于创建不能重新分配的不可变类或对象属性。 这些常量必须在声明时用一个值进行初始化。 这些属性可以在声明时或在类构造函数内赋值。 使用定义的变量常量具有块作用域。 只读属性的范围位于包含类或对象内。
TypeScript中const和readonly的区别 const所创建的引用类型,其内部的变量仍能进行改变(引用类型中存储的是地址,更改内部的变量,引用类型的地址确实没变) consta = [1,2,3]; a.push(102);//仍然能够进行更改,我们不希望是这样 因此就有readonly诞生惹...
被readonly 标记的属性只能在声明时或类的构造函数中赋值。 之后将不可改(即只读属性),否则会抛出 TS2540 错误。 与 ES6 中的 const 很相似,但 r…
上一篇更好的类型推断的文章中,解释了 TypeScript 如何用const变量和readonly属性的字面量始化来推断字面量类型。这篇文章继续讨论这个,扩展和非扩展字面量类型之间的区别。 扩展字面量类型 当使用const关键字声明局部变量并使用字面量值初始化它时,TypeScript 将推断该变量的字面量类型: ...
TypeScript 类型系统允许你在一个接口里使用readonly来标记属性。它能让你以一种更安全的方式工作(不可预期的改变是很糟糕的): functionfoo(config:{readonlybar:number,readonlybas:number}){// ..}constconfig={bar:123,bas:123};foo(config);// 现在你能够确保 'config' 不能够被改变了 ...
readonly 表示只读属性。 require 用于导入 CommonJS 模块。 return 退出函数并可返回值。 set 用于对象的 setter 方法。 string 表示字符串类型。 super 用于调用父类的方法或构造函数。 switch 用于switch 语句。 symbol 表示符号类型。 this 引用当前类或对象的实例。 throw 抛出异常。 try 用于异常处理语句 try...