Strojopis - oddělování výstup kód

hlasů
1

Snažím strojopis a považuji za velmi užitečné.

Mám docela velký projekt a já byl s ohledem na přepisování jej pomocí strojopis. Hlavním problémem je zde následující:

soubor A.ts:

class A extends B {
    // A stuff
}

soubor B.ts:

class B {
    // B stuff
}

Mám-li sestavit A.ts s tímto příkazem:

tsc --out compiledA.js A.ts

Dostanu chybě kompilátoru protože on neví, jak hrozba části „B“ po rozšiřuje.

Takže, je „řešení“ bude i v A.ts (jako první řádek kódu):

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

Znovu sestavování A.ts se stejným příkazem

tsc --out compiledA.js A.ts

Bude mít za následek compiledA.js obsahujících jak B.ts a A.ts kód. (Což může být velmi příjemné)

V mém případě, jen musím sestavit kód A.ts v souboru compiledA.js a já nechci, aby B.ts věci být tam.

Ve skutečnosti to, co chci, je:

  • TSC --out A.js A.ts => sestavit pouze věci A.ts
  • TSC --out B.js B.ts => sestavit pouze věci B.ts

Zvládnu to tím, že odstraní „se rozkládá“ klíčové slovo, ale tím, že budu ztrácet většinu strojopisem dobra.

Může mi někdo telll, jestli existuje způsob, jak to udělat?

Položena 03/10/2012 v 12:54
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Po nějakém výzkumu jsem zjistil, že problém byl představen --out argument v kompilátoru.

@silent__thought řešení funguje v pohodě, pokud chcete vypořádat s moduly. Pokud si nejste, budete muset použít příkaz požadovat (podívejte se na otázku) a poté sestavit soubor „main.ts“ withouth na --out argumentu

Odpovězeno 03/10/2012 v 20:27
zdroj uživatelem

hlasů
0

EDIT: Jak Andrea poukazuje na to, pokud vynecháte --outparametr dostanete chování očekávané, tedy žádnou kombinaci zdrojových souborů. Budu toto alternativní řešení ponechat pod zapouzdřit to může pomoci někoho jiného.


Věřím, že budete muset použít externí syntaxi modulu (CommonJS nebo AMD), jak to udělat.

Používání příklad:

a.ts

import B = module("b")

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

b.ts

export class B {
    // B stuff
}

Kompilovat tsc --out compiledA.js A.ts.

To má za následek a.jsimport b.jspoužívání systému CommonJS. Výsledné soubory vypadat následovně:

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;
Odpovězeno 03/10/2012 v 14:59
zdroj uživatelem

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