Tapuscrit - séparation de sortie de code

voix
1

je suis en train tapuscrit et je trouve très utile.

J'ai un projet assez grand et je considérais la réécriture à l'aide tapuscrit. Le principal problème ici est le suivant:

fichier A.ts:

class A extends B {
    // A stuff
}

fichier B.ts:

class B {
    // B stuff
}

Si je compile A.ts avec cette commande:

tsc --out compiledA.js A.ts

Je vais erreur du compilateur parce qu'il ne sait pas comment la menace « B » se prolonge après.

Ainsi, une « solution » serait notamment en A.ts (en première ligne de code):

/// <reference path=./B.ts />

A.ts à nouveau avec Compiler la même commande

tsc --out compiledA.js A.ts

Entraînera compiledA.js contenant à la fois B.ts et le code A.ts. (Ce qui pourrait être très agréable)

Dans mon cas, je ne dois compiler le code A.ts dans le fichier compiledA.js et je ne veux pas que les choses B.ts être là-dedans.

En effet, ce que je veux est:

  • tsc --out A.js A.ts => compiler uniquement les choses A.ts
  • tsc --out B.js B.ts => compiler uniquement les choses B.ts

Je peux le faire en supprimant le mot-clé « étend » mais cela que je vais lâche plus de la bonté dactylographiée.

Quelqu'un peut-il me telll s'il y a une façon de le faire?

Créé 03/10/2012 à 12:54
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Après quelques recherches, j'ai découvert le problème a été introduit par l'argument --out dans le compilateur.

solution @silent__thought fonctionne très bien si vous voulez traiter avec des modules. Si vous n'êtes pas, vous aurez besoin d'utiliser l'instruction require (voir la question) puis compiler le fichier « main.ts » withouth l'argument --out

Créé 03/10/2012 à 20:27
source utilisateur

voix
0

EDIT: Comme Andrea souligne, si vous ne spécifiez pas le --outparamètre que vous obtiendrez le comportement attendu, à savoir aucune combinaison de fichiers source. Je vais laisser cette solution de rechange ci - dessous Incase il peut aider quelqu'un d' autre.


Je crois que vous devrez utiliser la syntaxe du module externe (CommonJS ou AMD) pour le faire.

En utilisant votre exemple:

a.ts

import B = module("b")

class A extends B.B {
    // A stuff
}

b.ts

export class B {
    // B stuff
}

Compiler avec tsc --out compiledA.js A.ts.

Il en résulte l' a.jsimportation en b.jsutilisant le système CommonJS. Les fichiers résultants ressemblent à ceci:

a.ts

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
}
var B = require("./b")
var A = (function (_super) {
    __extends(A, _super);
    function A() {
        _super.apply(this, arguments);

    }
    return A;
})(B.B);

b.ts

var B = (function () {
    function B() { }
    return B;
})();
exports.B = B;
Créé 03/10/2012 à 14:59
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more