Cómo ejecutar archivos .ts separados en el CET?

votos
1

Hice dos archivos de texto mecanografiado A.tsy 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
    DE ACUERDO. Se hace A.js y TestA.js.

  • tsc TestA.ts -e
    NG. RefenceError: Ano está definido

  • tsc A.ts TestA.ts -e
    También plantea el mismo error

¿A dónde voy mal?

Publicado el 04/10/2012 a las 14:07
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
4

/// <reference path="A.ts"/>Sólo se utiliza en tiempo de compilación para hacer referencia a tipos en otro archivo. Cuando se utiliza esta construcción, mecanografiado asume que esos tipos serán de alguna manera ya esté disponible en tiempo de ejecución. Es decir, usted es responsable de las carga de sí mismo.

Lo que están queriendo hacer es hacer referencia a los otros archivos en tiempo de ejecución . Esto se realiza a través de módulos y la importy exportpalabras clave.

Prueba esto:

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

A continuación, se puede utilizar tsc TestA.ts -epara compilar y ejecutar el código.

Respondida el 04/10/2012 a las 15:52
fuente por usuario

votos
1

Usted tiene un error de lado en su código (la falta de un ")"). Éste recoge:

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

EDIT:

En cuanto a su prob inicial, es necesario exportar el primer módulo a continuación, importe que en su segundo archivo.

Usted tendrá que utilizar un cargador de módulos externos (como RequireJS) con el fin de ser capaz de ejecutar como el compilador pondrá en marcha una llamada de función require (como módulo CommonJS).

ver: ¿Cómo funciona el módulo de carga de trabajo con el texto mecanografiado

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();
Respondida el 04/10/2012 a las 15:06
fuente por usuario

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