为什么TypeScript将const翻译成var?

3

我写了一些代码来测试typescript如何将ts翻译成js。

const printX = (name: string) => console.log(`hello, ${name}!`)
const tt = () => {
 const t1 = 123;
const t2 = 456;

}

我检查了翻译后的js文件,发现它是这样的:

var printX = function (name) { return console.log("hello, ".concat(name, "!")); };
var tt = function () {
    var t1 = 123;
    var t2 = 456;
};

为什么TypeScript将const关键字翻译成var关键字。

我想知道是否可以强制让ts将const翻译成const。


1
进入你的 tsconfig.json 文件,将目标版本设置为 ES2015 或更高版本。 - Tobias S.
1个回答

4

将tsconfig中的目标设置为ES5以上,这样ES6语法(例如const)就会被保留。

现代浏览器支持所有ES6特性,因此ES6是一个不错的选择。如果您的代码部署到较旧的环境中,则可以选择设置较低的目标;如果您的代码保证在较新的环境中运行,则可以选择设置较高的目标。

目标设置更改了哪些JS特性被降级以及哪些保持不变。例如,箭头函数() => this会在目标为ES5或更低版本时转换为等效的函数表达式。


起初,我尝试在tsconfig.json中使用es6设置来编译tsc。然而,结果被编译为"var"。现在,我意识到我的tsc命令是全局安装版本,并没有使用tsconfig.json进行编译。 - Steve Baek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接