Je suis en train d'utiliser le compilateur de fermeture google (je vais l'appeler compiler
pour faire court) à validate codebase JavaScript comme ça:déclaration de type d'exportation en dehors de la fonction
java -jar compiler.jar --js='**.js' --jscomp_error newCheckTypes > NUL 2> gcc.log
La chose est nous avons déjà beaucoup de code dans AMD et taper des annotations écrites pour les modules de base comme ça:
define(function() {
/** @constructor */
MyClass() {}
/** @param {string} s */
MyClass.prototype.myMethod = function (s) {
alert(s);
}
return MyClass;
});
Je voudrais faire référence au type /** @type {MyClass} */
dans d'autres modules, donc si j'appelle une méthode avec de mauvais arguments, elle se plaindra.
Malheureusement, lorsque j'utilise ces annotations de type, compiler
sorties:
Bad type annotation. Unknown type MyClass
/** @type {MyClass} */
Si je bande hors fonction module delcaring, compiler
« comprend » ma déclaration, mais je ne me sens pas comme la réécriture de notre code de cette façon.
Y a-t-il un moyen de faire compiler
voir mes déclarations de type et appliquer dans d'autres modules?
Vous proposez donc de transformer des modules en CommonJS, puis d'appeler à nouveau le compilateur en fournissant du code transformé? – kirilloid
Non - tout serait fait en interne au compilateur dans une course. Fournissez simplement les drapeaux '--transform_amd_modules' et' --process_common_js_modules'. –
Je ne m'attendais pas à ce qu'il fonctionne correctement aaand ... ça n'a pas fonctionné. Je vois encore toutes ces erreurs. Ai-je expliqué clairement que je n'ai pas besoin de transformer le code de quelque façon que ce soit? Validez seulement les types comme avec flowtype. – kirilloid