Come eseguire i file .ts separato su TSC?

voti
1

Ho fatto due file dattiloscritto A.tse 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. Rende A.js e TestA.js.

  • tsc TestA.ts -e
    NG. RefenceError: Anon è definito

  • tsc A.ts TestA.ts -e
    solleva anche lo stesso errore

Dove ho sbagliato?

È pubblicato 04/10/2012 alle 14:07
fonte dall'utente
In altre lingue...                            


2 risposte

voti
4

/// <reference path="A.ts"/>viene utilizzato solo in fase di compilazione fare riferimento a tipi in un altro file. Quando si utilizza questo costrutto, dattiloscritto presuppone che tali tipi in qualche modo già disponibili in fase di esecuzione. Cioè, tu sei responsabile del caricamento da soli.

Che cosa si vuole fare è riferimento gli altri file in fase di esecuzione . Questo viene fatto utilizzando i moduli e l' importe exportparole chiave.

Prova questo:

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

Quindi è possibile utilizzare tsc TestA.ts -eper compilare ed eseguire il codice.

Risposto il 04/10/2012 a 15:52
fonte dall'utente

voti
1

Si dispone di un errore nel codice lato (manca un ")"). Questo compila:

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

MODIFICARE :

Per quanto riguarda il tuo prob iniziale, è necessario esportare il primo modulo poi importarlo nel secondo file.

Sarà necessario utilizzare un modulo caricatore esterno (come RequireJS) al fine di poter eseguire come il compilatore realizzerà una chiamata di funzione require (come modulo CommonJS).

vedi: Come funziona Module Loading Lavora con dattiloscritto

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();
Risposto il 04/10/2012 a 15:06
fonte dall'utente

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