关于:ReadonlySet的详细信息?

8

ReadonlySet是指只读属性的集合,与C#中的ReadOnlyCollection(点击此处查看)相同吗?我无法从任何地方找到有关它的文档。请问您能告诉我ReadonlySet的用途以及如何实现它吗?

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

@T.J.Crowder 我认为 ReadOnlySet 的功能与我在 C#(后端)中使用的 ReadOnlyCollection 相同。我没有找到任何相关文档。 - Ramesh Rajendran
如果您正在使用代码,必须能够弄清楚是什么提供了它,并从那里找到文档或源代码。不知道您谈论的是哪个类,很难帮助您。一般来说:不,集合和集合不同。集合可以两次包含相同的值。集合不行。 - T.J. Crowder
@T.J.Crowder,没有文档,那我该怎么办?如果您找到了任何关于此的文档,请告诉我。 - Ramesh Rajendran
1个回答

12

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

参考资料

与你提到的C#中的readonlySet不同,Typescript的ReadonlySet实际上不是一个类/构造函数,它只是一种类型。由于Typescript有鸭子类型(duck typing),SetReadonlySet的一种超类,因此该类型可以进行"类型转换"。这实际上仅用于类型检查,对运行时没有影响。在运行时,它只是一个JavaScript的Set


1
你有关于这个的文档吗?能再多解释一下吗? - Ramesh Rajendran
3
@ramesh添加了一个参考。 - Jonas Wilms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接