我知道 ES6 和 TypeScript 都支持块级范围,但是当以 ES3 和 ES5 为目标时,输出应该是函数级范围。我认为为什么 TypeScript 不提升变量背后必须有一个逻辑......而且我没有遇到问题,我只是好奇它为什么不提升变量。
例如,给定以下 TypeScript:
function seed(length: number, multiplier: number): number[] {
let result: number[] = [];
for(let i: number = 0; i < length; i++) {
let n: number = i * multiplier;
result.push(n);
}
return result;
}
转译器输出:
function seed(length, multiplier) {
var result = [];
for (var i = 0; i < length; i++) {
var n = i * multiplier;
result.push(n);
}
return result;
}
我期望的结果是变量声明被提升到函数顶部。看起来像这样:
function seed(length, multiplier) {
var
i, n,
result = [];
for (i = 0; i < length; i++) {
n = i * multiplier;
result.push(n);
}
return result;
}
非常感谢任何见解。谢谢!