Je n'arrive pas à comprendre comment créer deux fichiers avec le même espace de noms et en importer un dans l'autre dans Typescript.Comment importer correctement le même espace de noms dans deux fichiers différents dans Typescript
Ceci est la situation:
file1.ts
export namespace nspace {
export class ClassA {
}
}
file2.ts
import {nspace} from './file1';
export namespace nspace {
export class ClassB extends nspace.ClassA {
private z: nspace.ClassA;
}
}
intérieur fichier2 j'ai ces erreurs:
1) Les déclarations individuelles à la fusion la déclaration 'nspace' doit être exportée ou toutes les locales
2) Propriété « ClassA » n'existe pas sur le type « typeof NSPACE »
En plus de cela, ClassA se trouve correctement lorsqu'il est utilisé pour déclarer le type du champ z
(il me fait même le fichier correct si j'utilise "aller à la déclaration" dans mon IDE)
J'ai essayé de chercher la première erreur sur Internet parce que je ne comprends pas vraiment ce que cela signifie, mais aucune des pages que j'ai trouvées a aidé. Je lis la documentation sur la déclaration de fusion dans Typescript mais je ne pouvais pas trouver une situation similaire à la mienne
Je ne sais pas si cela aide, mais j'utilise SystemJS dans mon application
Pour autant que je l'ai vu est une pratique courante lors de l'utilisation SystemJS, vous avez besoin Importer tout ce dont vous avez besoin dans vos fichiers Ou est-ce que je l'utilise mal? Cela a toujours fonctionné comme ça pour moi – valepu
En fait, je suis très familier avec SystemJS - mais je sais si votre 'tsconf ig.json' est réglé correctement (en utilisant '" module ":" system "') le fichier javascript résultant devrait avoir les instructions d'importation SystemJS correctes. Créez votre tapuscrit de la manière dactylographiée et laissez le compilateur gérer l'environnement. Essayez-le et jetez un coup d'œil à ce type de script compilé pour vous! –
mon tsconfig.json a "module: system" mais si je n'importe pas tout ce que je vais utiliser dans un certain fichier, il échoue quand j'ouvre mon application sur un navigateur. Serait-ce parce que Gulp gère la compilation? (commence à partir de index.ts et navigue les importations). J'utilise ceci comme projet de départ: https://github.com/FountainJS/generator-fountain-angular1 – valepu