Fondamentalement, je dois pouvoir écrire TypeScript
dans mon IDE (cela introduit une grande facilité de développement), le compiler dans ES6
(avenir proche de js) puis appliquer babel.js
(comme tous les navigateurs ne prennent pas en charge la plupart des ES6) pour obtenir les scripts ES5 résultants.
Est-ce possible ou comment obtenir le même résultat?
Oui.
Vous pouvez cibler le compilateur TypeScript sur ES6.
Par exemple, ajoutez ceci à vos arguments de ligne de commande:
--target es6
Oui, vous pouvez.
Soit en ajoutant --target es2015
, ou en ajoutant target
à votre tsconfig.json
:
{
"compilerOptions": {
"target": "es2015"
}
}
Les options prises en charge pour la cible sont les suivantes:
Il y a beaucoup plus d'options de configuration. Vous pouvez les explorer ici: Options du compilateur
Certaines options ne sont autorisées que dans tsconfig.json
, et non via des commutateurs de ligne de commande.
Vous pouvez utiliser TypeScript pour écrire ES6 pur, puis transpiler vers ES3 ou ES5. Depuis TypeScript est ES6 plus goodies.
Voyez-le comme utilisant Less pour écrire votre CSS, vous pouvez écrire du CSS pur dans un fichier de moins et il se compilera très bien.
Pour les spécifications du langage TypeScript 1.8:
TypeScript est un sucre syntaxique pour JavaScript. La syntaxe TypeScript est un sur-ensemble de la syntaxe ECMAScript 2015 (ES2015). Chaque programme JavaScript est également un programme TypeScript.
La syntaxe TypeScript inclut toutes les fonctionnalités d'ECMAScript 2015, y compris les classes et les modules, et offre la possibilité de traduire ces fonctionnalités en code conforme ECMAScript 3 ou 5.
TypeScript est plus ou moins ES6 avec très peu de sucre syntaxique. Je vous suggère d'écrire Vanilla ES6 au lieu de TypeScript mais d'un autre côté, les outils TypeScript valent la peine de faire l'effort supplémentaire d'écrire TypeScript et de le transpiler dans ES6 et de laisser Babel faire le reste.
Voici une option plus pratique, comme indiqué dans un commentaire, à partir de TypeScript 1.5, vous avez la possibilité de transpiler vers ES6.