javascript 变量不能被重新声明,但也不能被访问

问题描述

我是 Javascript 的新手。我有两个带有 js 代码文件文件 a.js 包含

const words = ["Alpha","Bita","Gama"];
console.log(words);

文件 b.js 包含

//@ts-check
const words = ["Alpha","Gama"];
console.log(words);

a.js 和 b.js 都位于根目录下的 src 文件夹中 在根目录中,我也有一个 jsconfig.json

{
    "compilerOptions": {
        "outDir": "./built","module": "commonjs","target": "es6",},"exclude": [
        "node_modules","**/node_modules/*"
    ]
}

文件 b.js 中,我收到错误“无法重新声明块范围变量‘words’。” 当我在 b.js 中注释掉单词的声明时,我没有收到任何错误,但是在运行文件 b.js 时,我收到一个“ReferenceError: words is not defined”。

我知道在 b.js 中擦除 //@ts-check解决这个问题,但我不明白为什么类型检查会产生这种行为。如果不允许访问变量,将变量保留在范围内有什么意义? 我使用 Visual Studio Code 并使用 node 运行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)