let 和 const 关键字在编译后在打字稿中给出错误。 var 工作正常的地方

let and const keyword giving error in typescript after compilation. Where as var works fine

我是打字稿的新手,我正在尝试观看教程。当我使用 const 和 let 时,我遇到了这个问题。编译后 ts 文件显示一些错误标记。但是在使用节点 filename.js 时得到输出。使用 var 时相同的代码没有显示任何问题。你能帮我解决这个问题吗?我已在 While using const, While using var[let message:string = 'Hello Word'; console.log(message);][4]

下方附上屏幕截图和一小段代码

您的 tsconfig.json 可能缺少 excludeinclude。如果没有这些,VSCode 会将当前工作区中的所有文件视为同一个命名空间中的文件。因为你的 TypeScript 源文件有一个名为 message 的变量,而你编译的 JavaScript 文件也有一个名为 message 的变量,VSCode 相信这些定义会“冲突”。

您应该在 tsconfig.json:

中明确指定要包含和排除的文件
{
    "compilerOptions": { ... },
    "include": ["**/*.ts"], // or maybe some other paths
    "exclude": ["**/*.js"], // don't include javascript files
}

您可以稍后根据需要更改这些;我在此处提供的值包括所有 TypeScript 文件并排除所有 JavaScript 文件。

至于为什么只有 var 有效,这是因为 var 允许您“重新声明”或隐藏变量而不会出错:

var myVariable = "hi!";
var myVariable = 42; //