अपडेट : टाइपस्क्रिप्ट 2.3 के साथ, अब आप "downlevelIteration": true
अपने tsconfig में जोड़ सकते हैं , और यह ES5 को लक्षित करते हुए काम करेगा।
नकारात्मक पक्ष यह downlevelIteration
है कि टीएस को ट्रांसप्लीनिंग करते समय काफी बॉयलरप्लेट को इंजेक्ट करना होगा। जोड़े गए बायलरप्लेट की 21 लाइनों के साथ प्रश्न ट्रांसपाइल्स से सिंगल लाइन: (टाइपस्क्रिप्ट 2.6.1 के रूप में)
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
var uniques = __spread(new Set([1, 2, 3, 1, 1]));
console.log(uniques);
यह बॉयलरप्लेट एक बार प्रति फ़ाइल में इंजेक्ट किया जाएगा "importHelpers"
जो डाउनलेवल पुनरावृत्ति का उपयोग करता है, और tsconfig के माध्यम से विकल्प का उपयोग करके इस बॉयलरप्लेट को कम किया जा सकता है । ( इस ब्लॉगपोस्ट को डाउनलेवल पुनरावृत्ति पर देखें औरimportHelpers
)
वैकल्पिक रूप से, यदि आपके लिए ES5 समर्थन मायने नहीं रखता है, तो आप हमेशा "es6" को पहले स्थान पर लक्षित कर सकते हैं, इस स्थिति में मूल कोड "downlevelIteration" ध्वज की आवश्यकता के बिना काम करता है।
मूल उत्तर:
यह एक टाइपस्क्रिप्ट ES6 ट्रांसप्लीकेशन क्वर्क लगता है। ...
ऑपरेटर कुछ भी पुनरावर्तक संपत्ति, (द्वारा पहुंच की है पर काम करना चाहिए obj[Symbol.iterator]
) और समूह है कि संपत्ति है।
इसके चारों ओर काम करने के लिए, आप Array.from
सेट को पहले सरणी में बदलने के लिए उपयोग कर सकते हैं ...Array.from(new Set([1, 2, 3, 1, 1]))
:।