TypeScript 中的变量声明出错



我知道,TypeScript 用等效的代码生成 JavaScript 文件。

但是,这里有一个问题,TypeScript 不会生成等效的 JavaScript 代码

演示.ts

function foo()
{
if(1)
{
let myName = "Raktim";
}
console.log(myName);
}
foo();

演示.js

function foo() {
if (1) {
var myName = "Raktim";
}
console.log(myName);
}
foo();

见上文,我在demo.ts文件中声明了一个语言环境变量myName。但是,看看它声明myName变量为全局变量的JavaScript代码。

总结:TypeScript 生成的 JavaScript 代码的变量始终在全局范围内(就我而言(。

因此,代码末尾的含义发生了变化。为什么?

我认为您正在使用像 Webpack 这样使用 babel 来转译代码的东西。

https://babeljs.io/docs/en/babel-preset-env

你需要告诉 Babel 你的目标浏览器。

例如,如果您的目标是读取 let 和 const 的最后一个 chrome,则编译后的代码不会更改

更新: 在评论中解决 使用 --目标选项 例如:TSC --目标 ES2016 文件.ts

最新更新