在 TypeScript 编码过程中,我们常常需要将某些属性进行只读限制,使得它们无法被修改。这时候,我们就可以使用 readonly
关键字来定义只读属性。
语法
TypeScript 中使用 readonly
关键字来修饰只读的属性,它位于属性前面。
class MyClass { readonly myReadOnlyProp: string = "readonly"; }
特点
readonly
修饰的属性只能在声明时或构造函数里被初始化。- 初始化之后,尝试修改
readonly
属性的值将会报错。 - 如果将
readonly
属性声明为可选属性,那么其值的类型会变为联合类型,即被指定的初始化值和undefined
。
使用场景
在实际开发中,只读属性一般用在以下场景:
类的常量属性
下面是一个常量属性的例子,常量属性在语义上看起来与变量属性非常相似,但是值在赋予后不能被更改。
class MyClass { readonly MY_CONSTANT: string = "constant value"; }
读取远程配置
在 TypeScript 中,我们经常会根据某些外部因素来决定一些属性的值。比如,我们可以从远程 JSON
文件或者本地 .env
文件中读取一些配置信息,这些信息初始化后在代码的其他部分都不应该被更改。使用 readonly
就可以让这些属性变成只读属性。
-- -------------------- ---- ------- ----- ------- - -------- ------- - ---------- ------- -- ------------- - --------------------- - ---------------------- -- --- -------------- - -
总结
readonly
关键字可以定义只读属性,它能够确保属性在初始化之后不能被修改。常常使用在常量属性和外部配置读取中,通过使用只读属性来确保程序的正确性。在实际使用中,我们可以结合 getter
方法来隔离只读属性的内部状态。
最后,我们提供一个示例代码,让你更好理解 readonly
关键字在 TypeScript 中的使用方法:
-- -------------------- ---- ------- ----- -------------- - -- -------- -------- ---------- ------- -------- --------- ------- ------------------ ------- ------ ------- - -------------- - ------ ------------- - ------ - -- ---- -------- --------- --- ----------- ------ - ------ ------------------ ------------------ - - --- ------ - --- ---------------------- ------- ----------------------------- -- -- ----- ---- ---------------- - ------- -- --------- ------ -- ----------- ------- -- -- - --------- ---------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6472c3ed968c7c53b0059b86