详细信息:ReadonlySet?

Ram*_*ran 5 javascript readonly typescript ecmascript-6 angular

属性ReadonlySet集是否ReadOnlyC# 中的 ReadOnlyCollection相同?我无法从任何地方找到它的任何文件。您能否让我知道它的用途ReadonlySet以及我们如何实施它?

let readonly: Readonly<number> = 1;
let readonlySet: ReadonlySet<number> = ???// 
Run Code Online (Sandbox Code Playgroud)

Jon*_*lms 8

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
Run Code Online (Sandbox Code Playgroud)

参考

与您引用的 C# 中的 readonlySet 不同,打字稿 ReadonlySet 实际上不是一个类/构造函数。它只是一种类型。由于打字稿具有鸭子类型,因此它Set是 to 的超类ReadonlySet,因此可以“类型转换”。这实际上仅用于类型检查,它对运行时没有影响。在运行时,它只是一个 JavaScript Set

  • @ramesh 添加了一个参考 (3认同)