Typescript - kod çıkışı ayırma

oy
1

i typescript çalışıyorum ve bunu çok yararlı buluyorum.

Ben oldukça büyük proje ettik ve ben typescript kullanarak o yeniden düşünüyordu. Burada asıl sorun şudur:

A.ts file:

class A extends B {
    // A stuff
}

B.ts file:

class B {
    // B stuff
}

Ben bu komutla A.ts derleme:

tsc --out compiledA.js A.ts

o B den sonra uzanır nasıl tehdit bilmiyor çünkü ben derleyici hata alırsınız.

Yani, bir çözüm (kod ilk satırı olarak) A.ts dahil olacaktır:

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

Tekrar Derleme aynı komutla A.ts

tsc --out compiledA.js A.ts

B.ts ve A.ts kodunu hem içeren compiledA.js sonuçlanacaktır. (Çok güzel olabilir)

Benim durumumda, ben sadece compiledA.js dosyasında A.ts kodu derlemek için gereken ve orada olmak B.ts şeyler istemiyoruz.

Nitekim, istediğim geçerli:

  • tsc --out A.js A.ts => sadece A.ts şeyler derlemek
  • tsc --out B.js B.ts => sadece B.ts şeyler derlemek

Ben uzanır anahtar kelimesini kaldırarak ama typescript iyilik en gevşek edeceğiz yaparak bunu yapabilirsiniz.

Bunu yapmanın bir yolu varsa birisi beni telll misin?

Oluştur 03/10/2012 saat 12:54
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
2

Öğrendiğim bazı araştırmalar sonrasında sorun derleyici --out argüman tarafından tanıtıldı.

Eğer modülleri ile uğraşmak istiyorsanız @silent__thought çözüm gayet güzel çalışıyor. Eğer değilseniz --out argüman kullanmaksızın "main.ts" dosyasını derlemek sonra (sorusuna bakmak) gerektiren deyimi kullanın ve gerekecektir

Cevap 03/10/2012 saat 20:27
kaynak kullanıcı

oy
0

DÜZENLEME: Andrea işaret ettiği gibi sen atlarsanız, --outsen beklenen davranıştır alacak parametre, kaynak dosyalarının hiçbir kombinasyonunu yani. O başkası yardımcı olabilir örtmek aşağıda bu alternatif çözüm bırakacağım.


Bunu yapmak için harici modül sözdizimi (CommonJS veya AMD) kullanmak zorunda olacağına inanıyoruz.

senin örneği kullanarak:

a.ts

import B = module("b")

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

b.ts

export class B {
    // B stuff
}

Ile derlemek tsc --out compiledA.js A.ts.

Bu sonuçlanır a.jsithal b.jsCommonJS sistemini kullanarak. Ortaya çıkan dosyalar şuna benzer:

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;
Cevap 03/10/2012 saat 14:59
kaynak kullanıcı

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