Cannot redeclare block-scoped variable

问题:vscode中编写typescript文件,提示错误Cannot redeclare block-scoped variable 'XXX'.ts(2451)

分析:这被认为是设计上的问题。typescript使用DOM typings作为全局执行上下文。全局环境下就极有可能随时出现命名问题,所以typescript会提示这样的错误。

解决:有两种解决方法

  1. 使当前文件被视为模块文件,如果没有中确实不需要import或者export任何内容。可以直接声明一个export{};
  2. 在tsconfig.json文件中添加如下内容,这样设置使得编译器不包含DOM typings。(目前不是很清楚这里的原因和理由,这样设置会不会带来其他问题呢?)
    {
        "compilerOptions": {
            "lib": [
                "es2015"
            ]
        }
    }
  3. 持续更新

参考

  1. Cannot redeclare block-scoped variable 'name' 
  2. cannot-redeclare-block-scoped-variable-in-unrelated-files
  3. 解决方式
posted @ 2019-07-04 13:17  Jamie0327  阅读(4198)  评论(0编辑  收藏  举报
levels of contents