javascript - 关于 : ReadonlySet? 的详细信息

标签 javascript angular typescript ecmascript-6 readonly

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 实际上不是一个类/构造函数。它只是一种类型。由于 typescript 具有鸭子类型,SetReadonlySet 的父类(super class),因此类型可以“类型转换”。这实际上只是为了类型检查,它对运行时没有影响。在运行时,它只是一个 JavaScript Set

关于javascript - 关于 : ReadonlySet? 的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48325146/

相关文章:

angular - 仅使用 prerender.io 客户端预渲染 Angular 7 SPA

javascript - 时间间隔 Angular 自动刷新

typescript - "supplied parameters do not match any signature of call target"是什么意思?

javascript - 为什么模型历史和模型输出历史总是未定义

javascript - 如何将 Latex 转换为 mathml

javascript - 将 JSON 响应存储为数组以用于计算 : Javascript

angular - 为什么 Angular2 组件属性没有显示在我的页面中?

javascript - 如何在javascript中分割并更改为不同的格式

javascript - 选中时如何从datalist->option元素中获取 'rel'值?

typescript - 类型不提供与使用 withStyles 的签名的匹配