Comment exécuter des fichiers .ts séparés sur tsc?

voix
1

J'ai fait deux fichiers tapuscrit A.tset 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
    D'ACCORD. Il fait A.js et TestA.js.

  • tsc TestA.ts -e
    NG. « RefenceError: An'est pas défini »

  • tsc A.ts TestA.ts -e
    soulève également la même erreur

Où dois-je me trompe?

Créé 04/10/2012 à 14:07
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
4

/// <reference path="A.ts"/>est utilisé uniquement au moment de la compilation de types référence dans un autre fichier. Lorsque vous utilisez cette construction, tapuscrit suppose que ces types seront en quelque sorte déjà disponibles lors de l'exécution. Autrement dit, vous êtes responsable de les charger vous-même.

Ce que vous voulez faire est de référencer les autres fichiers à l' exécution . Cela se fait à l' aide des modules et importet exportmots - clés.

Essaye ça:

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

Ensuite , vous pouvez utiliser tsc TestA.ts -epour compiler et exécuter le code.

Créé 04/10/2012 à 15:52
source utilisateur

voix
1

Vous avez une erreur de côté dans votre code (manque un « ) »). Celui-ci compile:

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

MODIFIER :

En ce qui concerne votre prob initiale, vous devez exporter le premier module importer ensuite dans votre deuxième fichier.

Vous aurez besoin d'utiliser un chargeur de module externe (comme RequireJS) afin de pouvoir l'exécuter comme le compilateur mettra en œuvre un appel de fonction require (comme le module CommonJS).

voir: Comment fonctionne le module de travail de chargement avec tapuscrit

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();
Créé 04/10/2012 à 15:06
source utilisateur

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