区别
const
用于变量。
const message = 'Hello'
// 不起作用
message = 'World'
而 readonly
用于属性。属性可以声明为类的成员。
class Triangle {
public readonly numberOfVertices = 3
}
const triangle = new Triangle()
// 不起作用
triangle.numberOfVertices = 4
或 type
、interface
:
interface Person {
firstName: string
lastName: string
readonly fullName: string
}
const
声明必须初始化,并且不能重新分配其值。可以在构造函数中重新分配 readonly
属性。
class Square {
readonly numberOfVertices: number
constructor() {
this.numberOfVertices = 4
}
}
如果不直接传递 readonly
属性的类或接口,而是传递别名,则可以更改 readonly</