I want to extract all the unique properties from an array of objects, you can do so in ES6 very cleanly using the spread operator and the Set so:
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]
However, in TypeScript 1.8.31 this gives me the build error:
Cannot find name 'Set'
I know I can force VS to ignore it by using
declare var Set;
But I'm hoping for something TypeScript will compile into non-ES6 so that it could be used on older systems.
Does anyone know if there's such a feature I could use?
Edit:
Actually, even when I use declare var Set;
, the above code compiles but throws this error repeatedly, so I'm not sure how to use it even without compiling down:
Uncaught TypeError: (intermediate value).slice is not a function
How can I update my code to use Set
in TypeScript?