Ne Tapuscrit ont un équivalent du ES6 “Jeux”
Je veux extraire toutes les propriétés uniques à partir d'un tableau d'objets, vous pouvez le faire dans l'ES6 très proprement à l'aide de la propagation de l'opérateur et de la Ensemble donc:
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]
Cependant, en caractères d'imprimerie 1.8.31 cela me donne l'erreur de génération:
Ne peut pas trouver le nom 'Set'
Je sais que je peux la force de VS de les ignorer en utilisant
declare var Set;
Mais je suis en espérant quelque chose Tapuscrit de compiler dans le non-ES6, de sorte qu'il pourrait être utilisé sur des systèmes plus anciens.
Personne ne sait si il y a une fonctionnalité que je pourrais utiliser?
Modifier:
En fait, même lorsque j'utilise declare var Set;
, le code ci-dessus compile mais génère cette erreur à plusieurs reprises, donc je ne suis pas sûr de la façon de l'utiliser même sans compiler vers le bas:
Uncaught TypeError: (valeur intermédiaire).la tranche n'est pas une fonction
Comment puis-je mettre à jour mon code pour utiliser Set
en caractères d'imprimerie?
TS n'est pas nécessaire d'avoir un équivalent de ce, parce que TS transpiles JS, et
Set
est polyfillable JS fonctionnalité. C'est un doublon, stackoverflow.com/a/41608156/3731501 en particulier.Je suppose que vous pourriez aussi compiler le fichier d'enregistrement pour ES6 code et puis transpile que pour ES5 avec quelque chose comme babel. Qui vous permettra d'utiliser toutes les ES6 collections.
OriginalL'auteur Charles Clayton | 2017-01-21
Vous devez vous connecter pour publier un commentaire.
Pas. Si vous compilez à ES5 ou plus Tapuscrit n'ajoute que les changements syntaxiques de ES6. Il ne pas ajouter de la bibliothèque standard des objets.
Si vous voulez ceux que je vous suggère de regarder dans quelque chose comme core.js
OriginalL'auteur toskv
Cela a fonctionné pour moi.
L'un des problèmes semble être que la machine essaye d'utiliser
au lieu de Tableau.à partir de();
en tout cas, ce code a fonctionné pour moi dans mon Angulaire 4 application
espère que cela aide quelqu'un
Argument of type 'ArrayConstructor' is not assignable to parameter of type 'Iterable<{}>'. Property '[Symbol.iterator]' is missing in type 'ArrayConstructor'.
Avez-vous été en mesure de résoudre ce problème? Cela fonctionne toujours pour moi dans la production
donc, ce que j'ai fait était le même,
let set = new Set();
toutimport 'core-js/es6/set';
importés dans mon polyfills.tsMerci!!!! Confirmant
[...Array.from(new Set([...arr1, ...arr2]))]
fonctionne, mais[...(new Set([...arr1, ...arr2]))]
a donné le(intermediate value).slice is not a function
erreur.OriginalL'auteur Christian Matthew
Vous pouvez utiliser cette type de bibliothèque de scripts. Ou peut-être créer votre jeu de classe à l'aide de la référence à partir de cette bibliothèque
OriginalL'auteur Yogesh