टाइपप्रति - कोड उत्पादन को अलग

वोट
1

मैं टाइपप्रति कोशिश कर रहा हूँ और मैं इसे बहुत उपयोगी पाते हैं।

मैं एक काफी बड़ी परियोजना है और मैं यह टाइपप्रति का उपयोग कर फिर से लिखने पर विचार किया गया था। मुख्य समस्या यहाँ निम्नलिखित है:

फ़ाइल A.ts:

class A extends B {
    // A stuff
}

फ़ाइल B.ts:

class B {
    // B stuff
}

अगर मैं इस आदेश के साथ A.ts संकलन:

tsc --out compiledA.js A.ts

मैं संकलक से त्रुटि मिलती कारण वह नहीं जानता कि कैसे के लिए खतरा 'बी' के बाद फैली करेंगे।

तो, एक समाधान A.ts में सहित (कोड की पहली पंक्ति के रूप में) होगा:

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

फिर से संकलन एक ही कमांड के साथ A.ts

tsc --out compiledA.js A.ts

दोनों B.ts और A.ts कोड युक्त compiledA.js का परिणाम देगा। (बहुत अच्छा हो सकता है)

मेरे मामले में, मैं केवल compiledA.js फ़ाइल में A.ts कोड संकलन करने की जरूरत है और मैं नहीं है B.ts सामान वहाँ में होना चाहता हूँ।

दरअसल, मैं क्या चाहते हैं:

  • tsc --out A.js A.ts => केवल A.ts सामान संकलन
  • tsc --out B.js B.ts => केवल B.ts सामान संकलन

मैं फैली कीवर्ड निकालकर लेकिन कर रही है कि मैं टाइपप्रति अच्छाई का सबसे ढीला जाएगा द्वारा यह कर सकते हैं।

किसी ने मुझे telll कर सकते हैं वहाँ यह करने के लिए कोई तरीका है?

03/10/2012 को 12:54
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
2

कुछ शोध करने के बाद मुझे पता चला कि समस्या संकलक में --out तर्क द्वारा शुरू की गई थी।

@silent__thought समाधान सिर्फ ठीक काम करता है आप मॉड्यूल के साथ सौदा करना चाहते हैं। आप नहीं कर रहे हैं आप बयान की आवश्यकता होती है (सवाल पर देखने के) का उपयोग करें और फिर --out तर्क withouth "main.ts" फ़ाइल को संकलित करने की आवश्यकता होगी

03/10/2012 को 20:27
का स्रोत उपयोगकर्ता

वोट
0

संपादित करें: एंड्रिया बताते हैं, यदि आप छोड़ --outपैरामीटर आप अपेक्षित व्यवहार हो जाएगी, स्रोत फ़ाइलों का कोई संयोजन अर्थात्। मैं नीचे बैठाना इसे किसी और मदद कर सकते हैं इस वैकल्पिक समाधान छोड़ देंगे।


मेरा मानना ​​है कि आप बाहरी मॉड्यूल वाक्य रचना (CommonJS या एएमडी) का उपयोग करने के यह करने के लिए होगा।

अपने उदाहरण का उपयोग:

a.ts

import B = module("b")

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

b.ts

export class B {
    // B stuff
}

साथ संकलित करें tsc --out compiledA.js A.ts

इस परिणाम में a.jsआयात करने b.jsCommonJS प्रणाली का उपयोग कर। जिसके परिणामस्वरूप फ़ाइलें इस तरह दिखेगा:

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;
03/10/2012 को 14:59
का स्रोत उपयोगकर्ता

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