背景 当使用TypeScript搭建开发环境时,在开发过程中会被 IDE 提示「无法重新声明块范围变量」,从而导致编译出错,报错图示如下: 原因 在 Commonjs 规范里,所有模块在引用时都默认被抛至全局(没有闭包的「模块」概念),因此当再次声明某个模块时,TypeScript 会认为重复声明了两次相同的变量进而抛错。 解决方案 在该文件最后添加 export{} 代码。 let n: [string, number] n = ["123", 123] export { }