TypeScript 有许多实用程序类型,它们是 TypeScript 专门为解决问题而创建的类型。在这篇文章中,我们来看看Readonly
类型。
TypeScript 只读类型#
顾名思义,Readonly
TypeScript 中的类型表明特定类型是只读的。
让我们看一个例子。下面,我们不希望任何人更新myObject
. 我们可以像这样使它成为一个只读对象:
type User = {
firstName: string,
lastName: string
}
let firstUser:Readonly<User> = {
firstName: "John",
lastName: "Doe"
}
如果您尝试更改 的属性firstUser
,您将收到以下错误:
Cannot assign to 'firstName' because it is a read-only property.
只读变量在 TypeScript 中不起作用
当我们定义User
上面的类型时,我们正在创建一个自定义接口——即对象必须符合的东西。Readonly
仅适用于我们使用的接口或自定义类型。因此,我们仍然可以编辑Readonly
变量:
let myVariable:Readonly<string> = "Hello World";
myVariable = "Goodbye World";
console.log(myVariable); // console logs "Goodbye World"
上面的代码是有效的,并且可以在 TypeScript 中工作。如果您需要只读变量,您可以简单地使用const
,即:
const myVariable:string = "Hello World";
// Throws error: Cannot assign to 'myVariable' because it is a constant.
myVariable = "Goodbye World";