详细信息:ReadonlySet?

Details About: ReadonlySet?

ReadonlySet 是指 ReadOnly 组属性与 ReadOnlyCollection in C# 相同吗? 我无法从任何地方找到它的任何文档。您能否告诉我 ReadonlySet 的用途以及我们如何实施它?

let readonly: Readonly<number> = 1;
let readonlySet: ReadonlySet<number> = ???// 

ReadonlySet是类似于Set的类型,但是没有add/delete方法,所以只能在构造时添加元素:

  const regular: Set<number> = new Set([1,2,3]);
  regular.add(4);
  
  const readonly: ReadonlySet<number> = new Set([1,2,3]);
  readonly.add(4) //fails, add not a function

Reference

与您引用的 C# 中的 readonlySet 不同,typescripts ReadonlySet 实际上不是 class/constructor。它只是一种类型。由于打字稿有鸭子打字,SetReadonlySet 的超类,所以类型可以“类型转换”。这实际上只是为了类型检查,它没有运行时 influence.At 运行时,它只是一个 JavaScript Set.