कैसे tsc पर अलग .ts फ़ाइलों को निष्पादित करने के?

वोट
1

मैं दो टाइपप्रति फ़ाइलें बनाया A.tsऔर TestA.ts

A.ts

class A {
    constructor( private name : string ){}
    disp(){ console.log( this.name ); }
}

TestA.ts

/// <reference path=A.ts/>
var a1 = new A( Jun );
a1.disp();
  • tsc TestA.ts
    ठीक। यह A.js और TestA.js बनाता है।

  • tsc TestA.ts -e
    एनजी। RefenceError: Aपरिभाषित नहीं है

  • tsc A.ts TestA.ts -e
    भी एक ही त्रुटि को जन्म देती है

कहाँ मैं गलत जाते हैं?

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


2 जवाब

वोट
4

/// <reference path="A.ts"/>केवल प्रकार संदर्भ के लिए एक और फाइल में संकलन समय पर किया जाता है। आप इस संरचना का उपयोग करते हैं, टाइपप्रति मानता है कि उन प्रकार के किसी भी तरह पहले से ही कार्यावधि में उपलब्ध हो जाएगा। यही कारण है, तो आप उन्हें अपने आप को लोड करने के लिए जिम्मेदार हैं।

आप क्या करना चाहते हैं कर रहे हैं पर संदर्भ अन्य फ़ाइलों है क्रम । इस मॉड्यूल और उपयोग किया जाता है importऔर exportखोजशब्दों।

इसे इस्तेमाल करे:

A.ts

export class A {   
  constructor(private name : string ) {}
  disp() {
    console.log(this.name);
  }
}

TestA.ts

import a = module('./a');
var a1 = new a.A( "Jun" );
a1.disp();

तो आप उपयोग कर सकते tsc TestA.ts -eसंकलन और कोड निष्पादित करने के लिए।

04/10/2012 को 15:52
का स्रोत उपयोगकर्ता

वोट
1

आप (एक लापता ")") अपने कोड में एक पक्ष त्रुटि है। यह एक संकलित:

class A {   
  constructor(private name : string ) {}
  disp() {
    console.log(this.name);
  }
}

संपादित करें:

अपने प्रारंभिक समस्या के संबंध में, आप पहले मॉड्यूल निर्यात करने के लिए की जरूरत है तो अपने दूसरे फ़ाइल में आयात करते हैं।

आप क्रम में एक बाहरी मॉड्यूल लोडर (RequireJS) की तरह उपयोग करने के लिए संकलक के रूप में यह निष्पादित करने के लिए एक समारोह कॉल (CommonJS मॉड्यूल की तरह) की आवश्यकता होती है को लागू करेगा सक्षम होने के लिए की आवश्यकता होगी।

देखें: कैसे टाइपप्रति साथ मॉड्यूल लोड हो रहा है काम करता है

A.ts

export class A {
  constructor(private name : string ){}
  disp() {
    console.log(this.name);
  }
}

TestA.js

var A = require("./A")
var a1 = new A.A("Jun");
a1.disp();
04/10/2012 को 15:06
का स्रोत उपयोगकर्ता

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