Il semble qu'il y ait deux façons d'utiliser les interfaces dans TypeScript: je peux les définir dans des fichiers .ts ordinaires et les importer, ou les définir dans des fichiers .d.ts et les faire découvrir automatiquement par node_modules/@ types ou en ajoutant des chemins pertinents à typeRoots dans tsconfig.json, et ils deviennent "magiquement" disponibles partout.La bonne façon d'utiliser les déclarations TypeScript (* .d.ts) et les interfaces?
Actuellement j'ai deux projets: un client (React) et un serveur (Express), les deux écrits en TypeScript. J'ai certaines interfaces que j'utilise dans les deux projets, et afin d'éviter les dépendances entre les projets, j'ai extrait les interfaces communes à un projet séparé dans des fichiers de déclaration. Ensuite, j'ajouté le projet en tant que dépendance dev cette façon:
"@types/my-definitions": "git+ssh://[email protected]/myaccount/my-definitions.git"
Ce compilateur tapuscrit façon détecte automatiquement les interfaces de node_modules/@ types, et je n'ai pas importer les interfaces.
Ma question est, est-ce une bonne pratique, ou devrais-je plutôt avoir les interfaces à l'intérieur des fichiers .ts ordinaires, importer le projet en tant que dépendance ordinaire et importer explicitement les interfaces que j'utilise? Quels sont les avantages et les inconvénients de chaque approche?