小编典典

无法重新声明块作用域变量

all

我正在构建一个节点应用程序,并且在 .js 中的每个文件中习惯于在各种包中执行此操作。

let co = require("co");

但是得到

在此处输入图像描述

等等所以使用打字稿似乎整个项目只能有一个这样的声明/要求?我对此感到困惑,因为我认为let范围仅限于当前文件。

我刚刚有一个正在运行的项目,但是在重构之后,现在到处都是这些错误。

有人可以解释吗?


阅读 45

收藏
2022-08-21

共1个答案

小编典典

我能得到的最好解释来自Tamas Piro
的帖子

TLDR;TypeScript 将 DOM 类型用于全局执行环境。在您的情况下,全局窗口对象上有一个“co”属性。

要解决这个问题:

  1. 重命名变量,或

  2. 使用 TypeScript 模块,并添加一个空的导出{}:

    export {};
    

或者

  1. 通过不添加 DOM 类型来配置编译器选项:

编辑 TypeScript 项目目录中的 tsconfig.json。

{
    "compilerOptions": {
        "lib": ["es6"]
      }
}
2022-08-21