有一个简单的TS包,用作CommonJS模块并且没有导出。 TS文件被编译成具有相同名称的JS文件并用作require('package/option-foo')
。'无法在不相关的文件中重新声明块范围变量'
tsconfig.json:
{
"compilerOptions": {
"target": "es5"
}
}
期权foo.ts:
declare const GlobalVar: any;
function baz() {}
if (GlobalVar.foo) GlobalVar.baz = baz;
期权bar.ts:
declare const GlobalVar: any;
function baz() {}
if (GlobalVar.bar) GlobalVar.baz = baz;
这里最重要的部分是option-foo
和option-bar
是从未一起使用。该项目中还有其他免费的TS文件,但它们不影响任何内容,只需要在一个tsc
运行中被转换为JS。
当tsc
运行时,它抛出
不能重新声明块作用域变量 'GlobalVar'。
重复函数的实现。
无法重新声明块范围变量'GlobalVar'。
重复函数的实现。
for GlobalVar
and baz
in both files。
如何处理这些问题而不会使构建过程或这两个TS文件的输出复杂化?
在这个特定的情况下,你可以像'custom-typings.d.ts'文件那样声明它,如果它们都是'any'。您也可以尝试更改所需的'--module'编译(尝试AMD/System,因为我相信它们可以单独对文件进行范围)。 – Seiyria