Il existe un package TS simple qui est utilisé en tant que modules CommonJS et n'a pas d'exports. Les fichiers TS sont compilés en fichiers JS portant le même nom et sont utilisés avec require('package/option-foo')
.
tsconfig.json:
{
"compilerOptions": {
"target": "es5"
}
}
option-foo.ts:
declare const GlobalVar: any;
function baz() {}
if (GlobalVar.foo) GlobalVar.baz = baz;
option-bar.ts:
declare const GlobalVar: any;
function baz() {}
if (GlobalVar.bar) GlobalVar.baz = baz;
L'élément important ici est que option-foo
et option-bar
ne sont jamais utilisés ensemble. Il existe d'autres fichiers TS complémentaires dans le projet, mais ils n'affectent rien, ils doivent juste être transpilés en JS dans une seule exécution de tsc
.
Lorsque tsc
s'exécute, il lance
Impossible de redéclarer la variable de bloc à portée 'GlobalVar'.
Implémentation de fonction en double.
Impossible de redéclarer la variable de bloc à portée 'GlobalVar'.
Implémentation de fonction en double.
pour GlobalVar
et baz
dans les deux fichiers.
Comment cela peut-il être traité sans compliquer le processus de construction ou la sortie de ces deux fichiers TS ?
1 votes
Dans ce cas spécifique, vous pouvez avoir quelque chose comme un fichier
custom-typings.d.ts
et simplement le déclarer là-bas, s'ils sont tous les deuxany
. Vous pourriez également essayer de changer la compilation--module
souhaitée (essayer AMD/System, car je crois qu'ils scindent les fichiers individuellement).