Istnieje prosty pakiet TS, który jest używany jako moduły CommonJS i nie ma eksportu. Pliki TS są kompilowane do plików JS o tej samej nazwie i używane jako require('package/option-foo')
."Nie można ponownie określić zmiennej blokowej" w plikach niepowiązanych.
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;
Ważną częścią jest to, że option-foo
i option-bar
są nigdy nie używane razem. W projekcie są inne bezpłatne pliki TS, ale one nie mają wpływu na nic, tylko trzeba je przesłać do JS w jednym biegu tsc
.
Kiedy tsc
biegnie, rzuca
Nie można redeclare blok o zasięgu zmienna 'GlobalVar'.
Duplikowanie implementacji funkcji.
Nie można redeclare o zmiennej "GlobalVar" o ograniczonym zasięgu.
Duplikowanie implementacji funkcji.
dla GlobalVar
i baz
w obu plikach.
Jak można to traktować bez komplikowania procesu kompilacji lub danych wyjściowych z tych dwóch plików TS?
W tym konkretnym przypadku możesz mieć plik 'custom-typings.d.ts' i zadeklarować go tam, jeśli oba są" dowolne ". Możesz także spróbować zmienić żądaną kompilację '--module' (spróbuj AMD/System, ponieważ uważam, że indywidualnie dopasowują pliki). – Seiyria