主题
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>