问题描述
我是 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 (将#修改为@)