Javascript 用于编译的类型脚本

Javascript 用于编译的类型脚本,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我想将Typescript编译为ES5,但使用ES6for..of语法 我的示例代码如下所示: // test.ts class Foo { bar () { for (var x of [1,2,3]) { console.log(x); } } } 我尝试过使用es2015生成器和iterable库进行编译,如下所示: tsc --target es5 --lib es2015.generator,es2015.ite

我想将Typescript编译为ES5,但使用ES6
for..of
语法

我的示例代码如下所示:

// test.ts
class Foo {
    bar () {
        for (var x of [1,2,3]) {
            console.log(x);
        }
    }
}
我尝试过使用es2015生成器和iterable库进行编译,如下所示:

tsc --target es5 --lib es2015.generator,es2015.iterable test.ts
这是我的期望输出:

var Foo = (function () {
    function Foo() {
    }
    Foo.prototype.bar = function () {
        var y = [1, 2, 3];
        for (var x of y) {
            console.log(x);
        }
    };
    return Foo;
}());
var Foo = (function () {
    function Foo() {
    }
    Foo.prototype.bar = function () {
        var y = [1, 2, 3];
        for (var _i = 0, y_1 = y; _i < y_1.length; _i++) {
            var x = y_1[_i];
            console.log(x);
        }
    };
    return Foo;
}());
以下是实际输出:

var Foo = (function () {
    function Foo() {
    }
    Foo.prototype.bar = function () {
        var y = [1, 2, 3];
        for (var x of y) {
            console.log(x);
        }
    };
    return Foo;
}());
var Foo = (function () {
    function Foo() {
    }
    Foo.prototype.bar = function () {
        var y = [1, 2, 3];
        for (var _i = 0, y_1 = y; _i < y_1.length; _i++) {
            var x = y_1[_i];
            console.log(x);
        }
    };
    return Foo;
}());
var Foo=(函数(){
函数Foo(){
}
Foo.prototype.bar=函数(){
变量y=[1,2,3];
对于(var_i=0,y_1=y;_i

有没有一种方法可以强制将TypeScript编译为目标ES5,并启用一些特殊的ES6功能(
for..of
,在本例中)呢?

tsc并没有提供我所知道的对传输的细粒度控制。。这一切都在。如果您想保持这些代码不变,您需要使用target
es6
运行。@just boris:它必须是es5,只有for..of es6功能。我想知道额外的库是否可以实现。Typescript不支持您的设置。所以,就不会有了solution@just-鲍里斯,我相信你是对的。据我所知,tsc并没有给你对透明度的细粒度控制。。这一切都在。如果您想保持这些代码不变,您需要使用target
es6
运行。@just boris:它必须是es5,只有for..of es6功能。我想知道额外的库是否可以实现。Typescript不支持您的设置。所以,就不会有了solution@just-鲍里斯,我相信你是对的。