Tôi muốn trích xuất tất cả các thuộc tính độc đáo từ một mảng của các đối tượng, bạn có thể làm như vậy trong ES6 rất sạch sử dụng toán tử lây lan và Set vậy:Liệu nguyên cảo có một tương đương với ES6 "Thiết lập"
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]
Tuy nhiên, trong nguyên cảo 1.8.31 này mang lại cho tôi những lỗi build:
Cannot find name 'Set'
tôi biết tôi có thể buộc VS để bỏ qua nó bằng cách sử dụng
declare var Set;
Nhưng tôi hy vọng cho một thứ gì đó TypeScript sẽ biên dịch thành phi ES6 để nó có thể được sử dụng trên các hệ thống cũ hơn.
Có ai biết nếu có một tính năng như vậy tôi có thể sử dụng không?
Sửa:
Trên thực tế, ngay cả khi tôi sử dụng declare var Set;
, các mã trên biên dịch nhưng throws lỗi này lặp đi lặp lại, vì vậy tôi không chắc chắn làm thế nào để sử dụng nó ngay cả khi không biên dịch xuống:
Uncaught TypeError: (intermediate value).slice is not a function
Tôi làm cách nào để cập nhật mã của mình để sử dụng Set
trong TypeScript?
trùng lặp có thể xảy ra của [kiễu góc 2 nguyên cảo không thể tìm thấy tên] (http: // stackoverflow .com/questions/33332394/angular-2-typescript-cant-find-names) – jonrsharpe
TS không cần phải có tương đương với điều này, bởi vì TS transpiles thành JS, và 'Set' là tính năng JS có thể nhúng được. Đây là một bản sao, http://stackoverflow.com/a/41608156/3731501 nói riêng. – estus
Tôi cho rằng bạn cũng có thể [biên dịch mã số thành mã ES6] (http://stackoverflow.com/questions/30439869/can-typescript-compile-to-es6-code) và sau đó chuyển nó sang ES5 với cái gì đó giống như babel. Điều đó sẽ cho phép bạn sử dụng tất cả các bộ sưu tập ES6. – jfriend00