2017-10-06 2 views
0

Je crée un cadre en utilisant Protractor pour tester les pages Web Angular. J'utilise TypeScript pour créer un modèle d'objet Page simplement parce que la syntaxe a plus de sens pour moi que JavaScript. C'est plus une chose de préférence.Avantages et inconvénients pour l'utilisation de tsc pour transpiler TypeScript vers JavaScript en utilisant la commande tsc

Quand je courais mes scripts d'automatisation, j'utilise la commande tsc pour transpile tout de TypeScript à JavaScript parce que je courais dans des erreurs avec mon dossier config. Après avoir exécuté la commande tsc, j'exécute le fichier config.js et exécute tous mes fichiers .js, y compris les fichiers d'objets de page et les fichiers de script. Le problème était que Protractor génère des valeurs globales après avoir lu le fichier config - donc il se plaindrait de certaines syntaxes comme import car cela n'est pas utilisé dans JavaScript.

Outre tous les .js et .js.map supplémentaires des fichiers flottais dans le même répertoire que les fichiers .ts - sont-il des inconvénients à l'écriture de mon cadre à l'aide Protractor pour tester les sites utilisant AngularTypeScript et ne pas utiliser JavaScript? Après tout, quand tout est dit et fait, j'utilise les fichiers JavaScript qui sont générés après la commande tsc.

+0

Je ne sais pas exactement ce que vous demandez. Les moteurs JavaScript n'exécutent pas de TypeScript, ils doivent donc exécuter JS. Ainsi, c'est ce que vos tests de protractor testeront. Peu importe si vous compilez manuellement avec 'tsc' ou si vous laissez un bundler comme webpack faire cela pour vous en tant que préprocesseur, tout compile le même. – mhodges

+0

Toutes mes excuses pour mon ignorance - Je suis novice en typographie et en JavaScript. Je me suis davantage préoccupé de ce que des «problèmes» potentiels peuvent survenir lorsque j'utilise 'tsc' pour transcoder le TypeScript en JavaScript, plutôt que de simplement utiliser JavaScript. Je ne savais pas à quel point 'tsc' était fiable - si cela avait du sens. – paxtonjf

Répondre

0

Si vous voulez « mettre tout cela ensemble » vous, plutôt que d'utiliser un chargeur de module, vous pouvez remplacer vos déclarations d'importation avec des commentaires de référence, donc au lieu de:

import * as stuff from './stuff'; 

Vous pouvez utiliser:

///<reference path="./stuff" /> 

Et certains IDE n'auront même pas besoin de cela, car ils supposent que tous les fichiers locaux seront là.

Lorsque vous utilisez des chemins de référence, vous n'importer ou exporter - et vous pouvez déployer des espaces de noms pour les choses hors de la portée mondiale

Cela dit, vous pouvez obtenir un chargeur de modules impliqués à la place - La vie sera encore plus heureuse.

+0

Merci! Cependant, je m'inquiétais davantage des problèmes potentiels qui pourraient survenir lorsque j'utilise 'tsc' pour transcoder le TypeScript en JavaScript, plutôt que de simplement utiliser JavaScript. – paxtonjf

+0

Le compilateur TypeScript est solide comme le roc, et vous avertira des erreurs potentielles, donc ce n'est pas à aimer. – Fenton