TypeScript的只读类型是如何工作的
让我们来看看TypeScript中的只读类型是如何工作的:
TypeScript 有许多实用类型,这些类型是 TypeScript 专门为解决某个问题而创建的。在这篇文章中,我们来看看Readonly 类型。
TypeScript的只读类型
顾名思义,TypeScript中的Readonly 类型表明某个特定类型是只读的。
让我们来看看一个例子。下面,我们不希望任何人更新myObject 的任何部分。我们可以像这样使它成为一个只读对象。
TypeScript
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 变量。
TypeScript
let myVariable:Readonly<string> = "Hello World";
myVariable = "Goodbye World";
console.log(myVariable); // console logs "Goodbye World"
上面的代码是有效的,可以在TypeScript中工作。如果你需要只读变量,你可以简单地使用const代替,即
TypeScript
const myVariable:string = "Hello World";
// Throws error: Cannot assign to 'myVariable' because it is a constant.
myVariable = "Goodbye World";
经DZone MVB的Johnny Simpson许可,发表于DZone。点击这里查看原文。