Nasıl TSC üzerinde ayrılmış ts dosyalarını yürütmek için?

oy
1

İki typescript dosyaları yapılmış A.tsve 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
    TAMAM. Bu A.js ve TestA.js yapar.

  • tsc TestA.ts -e
    NG. RefenceError: Atanımlanmadı

  • tsc A.ts TestA.ts -e
    Aynı hatayı yükseltir

Nerede yanlış gider?

Oluştur 04/10/2012 saat 14:07
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
4

/// <reference path="A.ts"/>yalnızca başka dosyada türlerini başvurmak için derleme zamanında kullanılır. Bu yapıyı kullandığınızda, typescript bu tür bir şekilde zaten zamanında mevcut olacağını varsayar. Yani bunları kendiniz yükleme sorumludur vardır.

Ne yapmak isteyen vardır diğer dosyalara başvuru olduğunu zamanında . Bu modüller ve kullanılarak yapılır importve exportanahtar kelimeleri.

Bunu dene:

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();

Sonra kullanabilirsiniz tsc TestA.ts -ederlemek ve kod çalıştırmak için.

Cevap 04/10/2012 saat 15:52
kaynak kullanıcı

oy
1

Sen) (a kayıp ")" kodunuzu bir yan hatası var. Bu seferki derler:

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

DÜZENLE :

İlk prob ile ilgili, daha sonra ikinci dosyada içe ilk modülünü dışa aktarmanız gerekir.

Sen (CommonJS modülü gibi) gerektiren işlev çağrısını uygulayacak derleyici olarak yürütmek mümkün olabilmesi için (RequireJS gibi) bir dış modül yükleyici kullanmak gerekecektir.

bkz: typescript ile Modül Yükleme Nasıl oluyor

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();
Cevap 04/10/2012 saat 15:06
kaynak kullanıcı

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