1

以下代码在 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 和在线游乐场中。仅当删除类型规范(:TestType)时,该错误似乎才消失。

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

4

1 回答 1

2

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

于 2013-06-25T17:53:33.970 回答