Ram*_*ran 5 javascript readonly typescript ecmascript-6 angular
属性ReadonlySet
集是否ReadOnly
与C# 中的 ReadOnlyCollection相同?我无法从任何地方找到它的任何文件。您能否让我知道它的用途ReadonlySet
以及我们如何实施它?
let readonly: Readonly<number> = 1;
let readonlySet: ReadonlySet<number> = ???//
Run Code Online (Sandbox Code Playgroud)
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
。