Существует простой пакет TS, который используется как модули CommonJS и не имеет экспорта. Файлы TS компилируются в файлы JS с тем же именем и используются как 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;
Здесь важно то, что option-foo
и option-bar
никогда не используются вместе. В проекте есть и другие дополнительные файлы TS, но они ни на что не влияют, их нужно просто перенести в JS за один tsc
прогон.
Когда tsc
запускается, он бросает
Невозможно повторно объявить блочную переменную GlobalVar.
Реализация дублирующей функции.
Невозможно повторно объявить блочную переменную GlobalVar.
Реализация дублирующей функции.
для GlobalVar
и baz
в обоих файлах.
Как с этим справиться, не усложняя процесс сборки или вывод этих двух файлов TS?
custom-typings.d.ts
файла и просто объявить его там, если они обаany
. Вы также можете попробовать изменить желаемую компиляцию--module
(попробуйте AMD / System, поскольку я считаю, что они охватывают файлы индивидуально). - person Seiyria   schedule 30.01.2017