web-dev-qa-db-fra.com

Devrais-je utiliser le manuscrit? ou je peux simplement utiliser ES6?

Mon travail quotidien est celui de développeur client utilisant AngularJS. Nous évaluons si nous voulons utiliser TypeScript. J'ai fait des recherches sur TypeScript et presque tous les packages JavaScript dont j'ai besoin doivent avoir des fichiers de type définition. Je trouve que ce n’est pas très pratique, surtout si j’aimerais essayer quelque chose de nouveau et qu’ils n’en ont pas la définition. C'est vraiment frustrant. (Même la définition actuelle de jQuery me pose certains problèmes si je veux utiliser TypeScript 1.5 bêta). J'ai commencé à regarder ES6 et cela ressemble à TypeScript. Devrais-je simplement utiliser ES6 à la place? De plus, j’ai entendu dire que angular 2 supportera pleinement TypeScript, est-ce une des raisons pour laquelle je devrais rester avec?

278
cjskywalker

J'utilise TypeScript dans mon projet angular actuel depuis environ un an et demi et, même s'il existe quelques problèmes de définitions de temps en temps, le projet DefinitelyTyped a un effet incroyable. tâche de suivre les dernières versions des bibliothèques les plus populaires.

Cela dit, la transition entre le code JavaScript Vanilla et le langage TS est une courbe d'apprentissage bien définie et vous devez tenir compte de votre capacité, ainsi que de celle de votre équipe, à effectuer cette transition. De même, si vous utilisez angular 1.x, la plupart des exemples que vous trouverez en ligne nécessiteront de les traduire de JS à TS et, dans l'ensemble, il n'y a pas beaucoup de ressources sur l'utilisation de TS et angular 1.x ensemble pour le moment.

Si vous prévoyez d'utiliser angular 2, de nombreux exemples utilisent TS et je pense que l'équipe continuera à fournir la majeure partie de la documentation dans TS, mais vous n'êtes certainement pas obligé d'utiliser TS pour utiliser _.angular 2.

L’ES6 a quelques fonctionnalités intéressantes et j’ai personnellement l’intention de me familiariser davantage avec elle, mais je ne considérerais pas cela comme un langage prêt à l’emploi pour le moment. Principalement en raison d'un manque de support par les navigateurs actuels. Voir this SO answer pour plus de détails. Bien sûr, vous pouvez écrire votre code dans ES6 et utiliser un transpiler pour le transmettre à ES5, ce qui semble être la chose la plus populaire à faire actuellement.

Globalement, je pense que la réponse dépendrait de ce que vous et votre équipe êtes à l'aise d'apprendre. Personnellement, je pense que TS et ES6 auront un bon support et un avenir long. Je préfère TS mais parce que vous avez tendance à obtenir des fonctionnalités linguistiques plus rapidement et que, pour le moment, le support de l’outillage (à mon avis) est un peu meilleur.

113
Kent Cooper

Arbre de décision entre ES5, ES6 et TypeScript

Ça vous dérange d'avoir une étape de construction?

  • Oui - tilisez ES5
  • Non, continue

Voulez-vous utiliser des types?

  • Oui - tilisez TypeScript
  • Non - tilisez ES6

Plus de détails

ES5 est le code JavaScript que vous connaissez et que vous utilisez dans le navigateur actuel. C'est ce qu'il est. Il ne nécessite pas d'étape de construction pour le transformer en un outil compatible avec les navigateurs actuels.

ES6 (également appelé ES2015) est la prochaine itération de JavaScript, mais il ne s'exécute pas dans les navigateurs actuels. Il existe de nombreux transpilers qui exporteront ES5 pour les exécuter dans les navigateurs. C'est toujours un langage dynamique (lu: non typé).

TypeScript fournit un système de saisie facultatif lors de l'intégration des fonctionnalités des versions futures de JavaScript (ES6 et ES7).

Remarque: de nombreux transpilers (babel, TypeScript, par exemple) vous permettront d’utiliser les fonctionnalités des versions futures de JavaScript et d’exporter du code qui sera toujours exécuté dans les navigateurs actuels.

656
Brocco