Hvordan å utføre atskilt Ts filer på TSC?

stemmer
1

Jeg har gjort to typescript-filer A.tsog 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
    OK. Det gjør A.js og TestA.js.

  • tsc TestA.ts -e
    NG. RefenceError: Aer ikke definert

  • tsc A.ts TestA.ts -e
    hever også den samme feil

Der jeg går galt?

Publisert på 04/10/2012 klokken 13:07
kilden bruker
På andre språk...                            


2 svar

stemmer
4

/// <reference path="A.ts"/>benyttes kun ved kompilering til referansetyper i en annen fil. Når du bruker denne konstruksjonen, forutsLoggFila at disse typene vil liksom allerede være tilgjengelig ved kjøring. Det vil si at du er ansvarlig for å laste dem selv.

Hva du ønsker å gjøre er å referere til andre filer på runtime . Dette gjøres ved hjelp av moduler og importog exportsøkeord.

Prøv dette:

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

Deretter kan du bruke tsc TestA.ts -etil å kompilere og kjøre koden.

Svarte 04/10/2012 kl. 14:52
kilden bruker

stemmer
1

Du har en sidefeil i koden (mangler en ")"). Denne kompilerer:

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

REDIGERE :

Når det gjelder din første prob, må du eksportere den første modulen deretter importere den i andre filen.

Du må bruke en ekstern modul loader (som RequireJS) for å kunne utføre det som kompilatoren vil gjennomføre en kreve funksjonskall (som CommonJS modul).

se: Hvordan Module Laster Arbeid med Loggfila

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();
Svarte 04/10/2012 kl. 14:06
kilden bruker

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