web-dev-qa-db-fra.com

Comment créer un package avec l'option isolatedModules = true activée?

Dans un fichier où j'exporte toutes les classes de mon package sur des lignes comme les suivantes:

export {default as BoundList, IBoundListOption, TBoundListFilterFn} from './list/BoundList';

des erreurs du formulaire sont générées:

TS1205: Cannot re-export a type when the '--isolatedModules' flag is provided.

Comment puis-je exporter des classes maintenant?

Ce problème s'est produit dans CRA2.1. Il y avait forcé à isolatedModules = true. Je fais une bibliothèque de composants sur CRA2.1

11
Khusamov Sukhrob

github.com/babel/babel-loader/issues/6 (grâce à @ CollinD pour le lien) inclut une solution de contournement pour savoir comment réexporter les types importés. Ce commentaire sur ce problème a la meilleure explication d'une solution de contournement:

Vous pouvez toujours faire une exportation s'il est clair que vous exportez un type:

import { T as a_T } from "./a";
export type T = a_T;

Vous pouvez également exporter * depuis "./a" ;.

Si je lis correctement le problème de GitHub, seuls les types TS peuvent être réexportés, mais les valeurs (par exemple les classes) ne peuvent pas être réexportées. Donc, si TS sait que vous importez un type (pas une classe), vous pouvez le réexporter.

Voici un autre exemple plus simple:

import { T } from "./a";
export type T = T;
2
Justin Grant

Oui - node_modules/fork-ts-checker-webpack-plugin/package.json est "version": "0.2.2".

Il semble que la modification ait été effectuée dans Microsoft/TypeScript # 15538, donc si vous testez avec 2.3, vous ne verrez pas l'erreur. Mais il commencera à se casser lorsque la version 2.4 sera publiée.

Pourtant, rien de tout cela ne devrait être un problème si isolatedModules est remplacé par true.

0
Singham