Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 1.03 KB

Readonly.md

File metadata and controls

39 lines (28 loc) · 1.03 KB
标题 标签
Readonly(让接口类型属性只读) readonly,keyof(只读,属于类型的属性)

让接口类型属性只读。

  • 使用 keyof 获取类型 T 的属性名,组合成联合类型(类似 string | boolean),并设置属性名和属性值。
  • 使用 readonly 关键字让属性名只读。

代码如下:

type Readonly<T> = {
  readonly [R in keyof T]: T[R];
};

使用方式:

interface ReadonlyTodo {
  title: string;
  description: string;
}

const todo: Readonly<ReadonlyTodo> = {
  title: "Hey",
  description: "foobar",
};

// todo.title = "Hello" // Error: cannot reassign a readonly property
// todo.description = "barFoo" // Error: cannot reassign a readonly property

应用场景

如下所示,鼠标悬浮到对应的类型变量可以查看类型。