Typescript ne trouve pas de nom même s'il est référencé
J'ai angulaire projet que je suis en train d'écrire en caractères d'imprimerie. Cela a bien fonctionné pour moi sous VS, et maintenant, je vais essayer la même chose avec Node.JS en vertu de webstorm.
J'ai un progresseur de classe, dans un progresseur.ts fichier:
export class Progressor{
public tasks: any;
constructor(){
this.tasks = {};
}
...
}
et j'ai mon contrôleur principal, qui utilise cette classe:
///<reference path="../progressor.ts" />
declare var angular: any; //I'm trying to eliminate these...
declare var Papa: any;
declare var $: any;
class MainController{
constructor($scope: any){
$scope.progressor = null;
$scope.filesDropped = function(files, rejectedFiles){
if(!files || !files.length)
return;
$scope.progressor = new Progressor();
//...
}
};
}
Noter que ce n'est pas Node.JS code - il est tout simplement partie d'une Node.JS projet.
La référence relative chemin d'accès est correct. Lorsque j'essaie de le compiler en utilisant:
tsc mainController.ts --module amd --target es5
J'obtiens une erreur: Impossible de trouver le nom de Progressor.
Je ne comprends pas quel est le problème... j'ai eu rien que des ennuis avec mon Node.JS jusqu'à présent, et j'envisage d'abandonner sur TS tout à fait pour ce projet. Tout d'abord, quelqu'un peut me dire pourquoi il ne compile pas? Notez que je veux que chaque fichier TS à être compilé séparément, afin que je puisse les déboguer confortablement via Chrome.
source d'informationauteur Gilthans
Vous devez vous connecter pour publier un commentaire.
Si vous avez
export
ed quelque chose, vous devezimport
en vue de le consommer, de ne pas<reference ...
.Remplacer le
<reference
commentaire avecimport prog = require('./progressor');
alors vous pouvez utiliser, par exemple,new prog.Progressor()
.Vous pouvez envisager d'utiliser
export = Progressor
de sorte que l'objet exporté à partir de l'autre fichier est la classe elle-même au lieu d'un conteneur.Après un certain temps, plus de recherche, je suis tombé sur ceci: Tapuscrit Modules. Après consultation, j'ai essayé de placer mes deux classes à l'intérieur du module{ } de blocs, qui a résolu le problème. Je suis encore un peu confus quant à pourquoi la langue m'obligerait à utiliser des modules pour le multi-fichier d'utilisation... mais pour l'instant il va faire.