'Não é possível redefinir variável com escopo de bloco' em arquivos não relacionados
Há um pacote TS simples que é usado como módulos CommonJS e não possui exportações. Os arquivos TS são compilados em arquivos JS com o mesmo nome e usados comorequire('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;
A parte importante aqui é queoption-foo
eoption-bar
estãonunca usados juntos. Existem outros arquivos TS complementares no projeto, mas eles não afetam nada, só precisam ser transpilados para JS em umtsc
corre.
Quandotsc
corre, joga
Não é possível redefinir a variável com escopo de bloco 'GlobalVar'.
Implementação de função duplicada.
Não é possível redefinir a variável com escopo de bloco 'GlobalVar'.
Implementação de função duplicada.
paraGlobalVar
ebaz
nos dois arquivos.
Como isso pode ser tratado sem complicar o processo de compilação ou a saída desses dois arquivos TS?