[英]Does TypeScript have an equivalent of ES6 “Sets”
我想从一个对象数组中提取所有唯一属性,你可以使用spread运算符和Set来非常干净地在ES6中这样做:
var arr = [ {foo:1, bar:2}, {foo:2, bar:3}, {foo:3, bar:3} ]
const uniqueBars = [... new Set(arr.map(obj => obj.bar))];
>> [2, 3]
但是,在TypeScript 1.8.31中,这给了我构建错误:
找不到名字'Set'
我知道我可以通过使用迫使VS忽略它
declare var Set;
但我希望TypeScript可以编译成非ES6,以便它可以在旧系统上使用。
有谁知道我可以使用这样的功能吗?
编辑 :
实际上,即使我使用declare var Set;
,上面的代码编译但重复抛出此错误,所以即使没有编译,我也不确定如何使用它:
未捕获的TypeError :(中间值).slice不是函数
如何更新我的代码以在TypeScript中使用Set
?
不可以。如果您编译为ES5或更旧的Typescript,只会添加ES6的语法更改。 它不会添加任何标准库对象。
如果你想要那些我建议你看看像core.js
这对我有用。
其中一个问题似乎是要使用的打字稿
ERROR TypeError: (intermediate value).slice is not a function
而不是Array.from();
无论如何,这个代码在我的Angular 4应用程序中适用于我
Array.from(new Set(Array)).sort(this.compareNumbers)
希望这有助于某人
您可以使用此类型的脚本库 。 或者可以使用此库中的引用创建一个集合类
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.