Skip to content

readonly

readonly 用于把属性标记为只读,表示该属性在初始化之后不能再被重新赋值。

基本示例

ts
interface User {
  readonly id: number
  name: string
}

const user: User = {
  id: 1,
  name: 'Tom',
}

user.name = 'Jerry'
// user.id = 2 // 报错

class 中的 readonly

readonly 也可以用于类属性。此时属性通常在声明时或构造函数中初始化。

ts
class Person {
  readonly age: number

  constructor(age: number) {
    this.age = age
  }

  celebrate() {
    // this.age += 1 // 报错
  }
}

Readonly 工具类型的区别

  • readonly:修饰单个属性
  • Readonly<T>:把一个对象类型中的所有属性都变成只读
ts
type Options = {
  url: string
  method: 'GET' | 'POST'
}

type ReadonlyOptions = Readonly<Options>

基于 MIT 许可发布