Impossible de trouver de l'espace de noms d'erreur
J'ai la configuration suivante:
//enums.ts
export enum DocumentType {
Email = 0,
Unknown = 1
}
-
//remote.ts
///<reference path="./remote.d.ts" />
import enums = require('./enums');
class Remote implements test.IRemote {
public docType: enums.DocumentType;
constructor() {
this.docType = enums.DocumentType.Unknown;
}
}
export = Remote;
-
//remote.d.ts
import * as enums from './enums';
declare module test {
export interface IRemote {
docType: enums.DocumentType;
}
}
Mais lorsque je lance le tsc plus de cela je reçois Cannot find namespace 'test'
de télécommandes.ts. Ce qui me manque?
Autre information qui pourrait être utile: j'ai récemment mis à niveau à partir Tapuscrit de 1,5 à Tapuscrit 1,8 et remplacé l'utilisation de const énumérations de simples énumérations comme dans l'exemple.
OriginalL'auteur Andrew Jones | 2016-03-02
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'exporter le module interne de
remote.d.ts
ainsi:à distance.d.ts
C'est parce que vous avez le module externe
remote
(le fichier lui-même est le module lorsqu'il y a un haut niveauimport
ouexport
déclaration), à partir de laquelle les types et d'autres symboles sont disponibles lorsqu'ils sont exportés, commeIRemote
est exporté à partir du module detest
.En d'autres termes, vous disposez d'un module interne à l'intérieur d'un module externe, mais le module interne n'est pas exporté. Aussi, le IRemote interface est effectivement à double enroulé, et se qualifient pour le fullname
remote.test.IRemote
.Remarque: l'OMI, le mélange des modules internes et externes des modules dans le même projet peut conduire à de nombreux problèmes et désagréments si vous n'êtes pas prudent, et en tant que tel, devrait être évitée lorsque cela est possible.
Quel est votre syntaxe pour l'importation de
remote.test
?Je suis dans la distance.ts et l'interface est définie dans la distance.d.ts autres que le ///<référence path="./à distance.d.ts />" je ne fais rien. Autre que l'ajout de l'export en distance.d.ts, puis en ajoutant à distance.test.IRemote dans l'instruction implements j'ai pas fait d'autres modifications au code ci-dessus.
Je veux dire, où et comment vous
import
la télécommande fichier de définition de module?Eh bien, je suppose que je ne suis pas. Alors, êtes-vous insinuer que je devrais avoir quelque chose comme:
import remote = require('./remote');
à l'intérieur de la télécommande.ts? J'ai pensé que j'avais seulement besoin de la référence de la balise.OriginalL'auteur John Weisz