Javascript typeScript传输和创建跨浏览器友好代码

Javascript typeScript传输和创建跨浏览器友好代码,javascript,typescript,internet-explorer,Javascript,Typescript,Internet Explorer,TypeScript是否消除了您是否应该使用这样的代码的顾虑(当您知道某些浏览器(如IE)可能不支持indexOf?) TypeScript传输过程是否生成保证在所有浏览器上运行的正确JavaScript代码?(假设TypeScript配置设置为ES5)。TypeScript确实执行许多低级编译,但indexOf不是其中之一。如果您的目标是ECMAScript 5,indexOf无论如何都会被包括在内,因为它在-中,但即使您的目标是ECMAScript 3,它也不会为您修复 在所有情况下,底层编

TypeScript是否消除了您是否应该使用这样的代码的顾虑(当您知道某些浏览器(如IE)可能不支持
indexOf
?)


TypeScript传输过程是否生成保证在所有浏览器上运行的正确JavaScript代码?(假设TypeScript配置设置为ES5)。

TypeScript确实执行许多低级编译,但
indexOf
不是其中之一。如果您的目标是ECMAScript 5,
indexOf
无论如何都会被包括在内,因为它在-中,但即使您的目标是ECMAScript 3,它也不会为您修复

在所有情况下,底层编译都是在标准版本之间进行的,而不是为了平滑浏览器兼容性

下面是两个底层编译的示例。在每种情况下,输出取决于您使用
target:“ES5”
标志瞄准的版本

让/常数 打字稿。允许使用块作用域变量

const x = 'loaded';

{
    const x = 'new value';
}

// loaded
console.log(x);
const x = "loaded";

for (const char of x) {
    console.log(char);
}
JavaScript。内部变量
x
重命名为
x_1
,以防止命名冲突

var x = 'loaded';
{
    var x_1 = 'new value';
}
// loaded
console.log(x);
迭代 打字稿。允许使用循环的

const x = 'loaded';

{
    const x = 'new value';
}

// loaded
console.log(x);
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);
}
var x=“已加载”;
对于(var_i=0,x_1=x;_i
TypeScript确实执行许多底层编译,但
indexOf
不是其中之一。如果您的目标是ECMAScript 5,
indexOf
无论如何都会被包括在内,因为它在-中,但即使您的目标是ECMAScript 3,它也不会为您修复

在所有情况下,底层编译都是在标准版本之间进行的,而不是为了平滑浏览器兼容性

下面是两个底层编译的示例。在每种情况下,输出取决于您使用
target:“ES5”
标志瞄准的版本

让/常数 打字稿。允许使用块作用域变量

const x = 'loaded';

{
    const x = 'new value';
}

// loaded
console.log(x);
const x = "loaded";

for (const char of x) {
    console.log(char);
}
JavaScript。内部变量
x
重命名为
x_1
,以防止命名冲突

var x = 'loaded';
{
    var x_1 = 'new value';
}
// loaded
console.log(x);
迭代 打字稿。允许使用循环的

const x = 'loaded';

{
    const x = 'new value';
}

// loaded
console.log(x);
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);
}
var x=“已加载”;
对于(var_i=0,x_1=x;_i
Typescript编译器不创建特定于浏览器的代码,这仍然是开发人员的责任。Typescript编译器不创建特定于浏览器的代码,这仍然是开发人员的责任。