TypeScript是否会删除您是否应该使用这样的代码(当您知道IE等浏览器可能不支持indexOf
时)?
arrValues.indexOf('Sam') > -1
TypeScript转换过程是否产生了保证在所有浏览器中运行的正确JavaScript代码? (假设TypeScript配置设置为ES5)。
答案 0 :(得分:1)
TypeScript确实执行了许多低级编译,但indexOf
不是其中之一。如果您要定位ECMAScript 5,则无论如何都会包含indexOf
,因为它位于specification - 但即使您要定位ECMAScript 3,也不会为您修复。
在所有情况下,低级编译都在标准版本之间,而不是平滑浏览器兼容性。
下面是两个低级编译示例。在每种情况下,输出取决于您使用target: "ES5"
标记定位的版本。
打字稿。允许使用块范围的变量。
const x = 'loaded';
{
const x = 'new value';
}
// loaded
console.log(x);
的JavaScript。内部变量x
被重命名为x_1
以防止命名冲突。
var x = 'loaded';
{
var x_1 = 'new value';
}
// loaded
console.log(x);
打字稿。允许使用for-of
循环。
const x = "loaded";
for (const char of x) {
console.log(char);
}
的JavaScript。循环转换为远不那么优雅但适度更兼容的循环。
var x = "loaded";
for (var _i = 0, x_1 = x; _i < x_1.length; _i++) {
var char = x_1[_i];
console.log(char);
}