TypeScript的只读类型是如何工作的

76 阅读1分钟

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。点击这里查看原文。