web-dev-qa-db-fra.com

Comment déclarer et importer des interfaces TypeScript dans un fichier séparé

Je souhaite définir plusieurs interfaces dans leur propre fichier dans mon projet TypeScript, à partir duquel je vais implémenter des classes pour la production ainsi que des simulacres pour les tests. Cependant, je ne peux pas comprendre quelle est la syntaxe correcte. J'ai trouvé de nombreux tutoriels sur la déclaration et la mise en oeuvre d'interfaces, mais ils ont tous une implémentation triviale de l'interface et des classes dérivées dans le même fichier, ce qui n'est pas très réel. Quelle est la bonne façon d'exporter et d'importer les interfaces?

46
snort

Vous devez exporter l'interface du fichier dans lequel est défini et l'importer où vous voulez l'utiliser.

dans IfcSampleInterface.ts:

export interface IfcSampleInterface {
   key: string;
   value: string;
}

Dans SampleInterface.ts

import { IfcSampleInterface } from './IfcSampleInterface';
let sampleVar: IfcSampleInterface;
62
Ajay

Utiliser la définition (d.ts) fichiers et espaces de noms, inutile d’importer/exporter des modules de cette façon. Le projet DefinitelyTyped a guidance et un grand nombre de exemples comment le faire.

32
Artem Koshelev

Vous devez exporter les interfaces dans le fichier dans lequel elles sont définies et les importer dans les fichiers où elles sont utilisées. Voir ce lien pour des exemples.

x.ts

interface X{
    ...
}
export default X

y.ts

import X from "./x.ts"
// You can use X now

Pour plus d'informations, voir https://www.typescriptlang.org/docs/handbook/modules.html

2
user6101582