web-dev-qa-db-fra.com

Quelles sont les principales différences entre Babel et TypeScript?

Je sais que TypeScript a été utilisé pour écrire Angular2, ce qui en fait probablement un meilleur choix pour ceux qui souhaitent se lancer dans Angular2, mais lorsque je regarde Babel, cela ressemble beaucoup à TypeScript.

J'ai remarqué que de nombreuses entreprises bien connues s'en tiennent à Babel.

Quelques questions:

  1. Quels avantages ont-ils l'un sur l'autre?
  2. Ce qui les rend meilleur ou pire choix pour le projet/développeur?
  3. Quelles sont les principales différences entre eux et qu'est-ce qui les rend uniques?
41
DevWL

TypeScript est un sur-ensemble de JavaScript compilé en JavaScript simple (ES3 +). L'objectif principal de TypeScript est de permettre aux développeurs d'exploiter d'excellentes capacités de frappe statique. Il convient aux grandes applications qui pourraient bénéficier de fonctionnalités telles que:

  • Type annotation de type inférence.
  • Génériques.
  • Interfaces, énumérations, espaces de nom, modules et classes (les deux derniers étant disponibles dans ES6).
  • Refactoring sécurisé.

Autant que je sache, Babel "transpile" simplement les nouvelles fonctionnalités ECMAScript dans un format pris en charge par les anciens environnements ECMAScript. Il convient aux développeurs qui souhaitent écrire du code JavaScript simple à l'aide de nouvelles fonctionnalités de langage.

58
Marty

Victor Savkin, l'un des angular 2 développeurs explique pourquoi ils ont sélectionné TypeScript par rapport à d'autres technologies.

http://victorsavkin.com/post/123555572351/writing-angular-2-in-TypeScript

la dernière section Pourquoi dactylographie?

"Il existe de nombreuses options disponibles pour les développeurs front-end actuels: ES5, ES6 (Babel), TypeScript, Dart, PureScript, Elm, etc. Alors pourquoi TypeScript?

Commençons par ES5. ES5 présente un avantage important sur TypeScript: il ne nécessite pas de transpiler. Cela vous permet de garder votre configuration de construction simple. Vous n'avez pas besoin de configurer des observateurs de fichiers, de transpiler du code, de générer des cartes source. Ça fonctionne. Pour de nombreux petits projets, cette simplicité l'emporte sur les capacités de refactoring et de navigation avancées fournies par TypeScript. Vous savez simplement où se trouve tout le code et ce qu'il fait.

ES6 nécessite un transpiler, donc la configuration de la compilation ne sera pas très différente de TypeScript. Mais il s’agit d’une norme, ce qui signifie que chaque éditeur et chaque outil de construction prend en charge ES6 ou le supportera.

Elm et PureScript sont des langages élégants dotés de systèmes de types puissants, capables de fournir beaucoup plus d'informations sur votre programme que TypeScript. Le code écrit en Elm et PureScript peut être beaucoup plus sensible que le code similaire écrit en ES5.

Chacune de ces options a ses avantages et ses inconvénients, mais je pense que TypeScript est particulièrement bien placé, ce qui en fait un excellent choix pour la plupart des projets. TypeScript prend 95% de l'utilité d'un bon langage à typage statique et l'amène à l'écosystème JavaScript. Vous avez toujours l'impression d'écrire ES6: vous continuez à utiliser la même bibliothèque standard, les mêmes bibliothèques tierces, les mêmes idiomes et plusieurs des mêmes outils (par exemple, Chrome dev tools). beaucoup sans vous forcer à sortir de l'écosystème JavaScript. "

27