打字稿;在for循环中生成的额外分号

时间:2013-06-25 17:45:51

标签: typescript

以下代码在TypeScript 0.9中编译

export class TestType { }
export class SomeClass 
{
    public set SomeProperty(v: TestType) { }
    public get SomeProperty(): TestType {
       for (var k = 0; k < 77; k++)
       {
        //whatever
       }
       return new TestType();
    }
}

它生成以下(不正确的)JavaScript,其中包含for循环中的附加分号;

define(["require", "exports"], function(require, exports) {
var TestType = (function () {
    function TestType() {
    }
    return TestType;
})();
exports.TestType = TestType;
var SomeClass = (function () {
    function SomeClass() {
    }
    Object.defineProperty(SomeClass.prototype, "SomeProperty", {
        get: function () {
            for (this.k = 0;; k < 77; k++) {
            }
            return new TestType();
        },
        set: function (v) {
        },
        enumerable: true,
        configurable: true
    });
    return SomeClass;
})();
exports.SomeClass = SomeClass;
});

在Visual Studio和online playground中都会出现问题。当类型规范(:TestType)被删除时,错误似乎只会消失。

这是预期的行为还是我错过了一个完全明显的地方?

1 个答案:

答案 0 :(得分:2)

这是a bug,将在即将发布的TypeScript版本中修复,还有一些其他关键问题。删除类型注释是最好的解决方法。