web-dev-qa-db-fra.com

Comment puis-je exporter une classe dans un module et l'importer dans un autre module en TypeScript avec angular

J'ai une classe (IGeneric) qui est exportée vers le module A et j'ai importé ce module (A) dans le module B, mais je ne pouvais pas utiliser cette classe exportée (IGeneric) dans le module B.

Remarque: cette classe exportée n'est pas un composant, une directive et service.it est une classe TypeScript pure.

Toute aide sera appréciée, merci d'avance. La classe que j'essaie d'exporter 

export class IGeneric{
header : any[];
content : [{
   lable :any,
   value :any
}]
}
4
praveen

Cela ressemble à un problème d'importation/exportation de module ES6/TypeScript plutôt qu'à un problème pour le système NgModule (complètement différent et séparé). Si tel est le cas, vous devez simplement import la classe de votre choix à partir du fichier que vous souhaitez en haut du fichier .ts, par exemple:

import { IGeneric } from './relative/path/to/definition';

puis utilisez la classe comme vous le feriez normalement dans un composant/service, etc.

public generic: IGeneric;
1
danimal

Il y a une astuce pour hide les détails dans un module par barrel files , via lequel vous pouvez 

  • introduisez simplement le fichier barrel (normalement appelé index.ts) dans ce module, et
  • exporter tout ce que vous avez l'intention d'exporter dans ce fichier Canon, puis
  • importer le chemin du module chaque fois que vous essayez d'utiliser la classe/interface exportée ou les composants;

En guise de suivi, il existe une autre réponse pour élaborer ce que vous pouvez obtenir en utilisant des fichiers baril. 

1
Hearen

Le fichier index vous sera utile si vous ne souhaitez pas afficher le chemin d'accès complet de votre classe.

Supposons que vous ayez un module MyModule dans lequel vous avez IGeneric classe

igeneric.model.ts

export class IGeneric{
header : any[];
content : [{
   lable :any,
   value :any
}]

Le fichier d'index doit se trouver dans votre répertoire Module MyModule

index.ts

export * from 'app/MyModule/igeneric.model';

Ensuite, dans votre composant, vous pouvez importer

import {IGeneric} from 'app/MyModule'
1
Amit Chigadani