TypeScript 只读属性详解

在本教程中,你将学习如何使用 TypeScript 中的只读访问修饰符,它可以把类的属性标记为不可变属性。

TypeScript 提供了只读访问修饰符允许你把类的属性标记为不可变属性。只能在下面两个位置中给属性添加只读属性:

要将属性标记为不可变属性,你需要使用 readonly 关键字,下面演示了如何在 Person 类中声明只读属性:

class Person {
  readonly birthDate: Date;

  constructor(birthDate: Date) {
    this.birthDate = birthDate;
  }
}

在这个例子中,birthdate 是一个只读属性,它在 Person 类的构造函数中进行初始化。下面尝试给 birthDate 属性重新赋值,抛出如下所示的错误提示:

let person = new Person(new Date(1990, 12, 25));
person.birthDate = new Date(1991, 12, 25); // Compile error

和其他 访问修饰符 一样,你可以在构造函数中同时声明和初始化只读属性,如下所示:

class Person {
  constructor(readonly birthDate: Date) {
    this.birthDate = birthDate;
  }
}

Readonly vs const

下面列出了 readonlyconst 之间不同点:

readonly const
用于 类的属性 变量
初始化 声明属性的时候或者在当前类构造函数中 声明变量的时候

小结

  • 使用只读访问修饰符把类的属性标记为不可变属性;
  • 只读访问修饰必须在声明属性的时候或者在当前类构造函数中进行初始化。

教程来源于Github,感谢cody1991大佬的无私奉献,致敬!

技术教程推荐

Web协议详解与抓包实战 -〔陶辉〕

消息队列高手课 -〔李玥〕

全栈工程师修炼指南 -〔熊燚(四火)〕

Java业务开发常见错误100例 -〔朱晔〕

手机摄影 -〔@随你们去〕

性能优化高手课 -〔尉刚强〕

去无方向的信 -〔小麥〕

JavaScript进阶实战课 -〔石川〕

徐昊 · AI 时代的软件工程 -〔徐昊〕