Javascript Durandal水疗中心发布的淘汰版和打字稿1.8.4

Javascript Durandal水疗中心发布的淘汰版和打字稿1.8.4,javascript,mvvm,knockout.js,visual-studio-2015,durandal,Javascript,Mvvm,Knockout.js,Visual Studio 2015,Durandal,我正在使用VS2012开发MVVM Durandal SPA应用程序。现在我使用Typescript 1.8.4迁移到VS2015。我正在使用typescript模块。所有类型脚本问题都已解决。但无论我在何处使用knockout传递绑定,在控制台中都显示为未定义。由于视图模型(模块)末尾的return语句 生成错误为“返回语句只能在函数体中使用”。 如果解决方案通过$root,那么我需要通过show多个位置 有什么简单的方法可以解决这个问题吗 受影响区域:在视图模型端,我需要编写返回语句。类似于

我正在使用VS2012开发MVVM Durandal SPA应用程序。现在我使用Typescript 1.8.4迁移到VS2015。我正在使用typescript模块。所有类型脚本问题都已解决。但无论我在何处使用knockout传递绑定,在控制台中都显示为未定义。由于视图模型(模块)末尾的return语句

生成错误为“返回语句只能在函数体中使用”。 如果解决方案通过$root,那么我需要通过show多个位置

有什么简单的方法可以解决这个问题吗

受影响区域:在视图模型端,我需要编写返回语句。类似于下面的类型脚本代码,但它应该生成如下所述的JavaScript。若我修复了构建错误,那个么只有我能够生成JavaScript

使用模块的打字脚本:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}
return Greeter;
define(["require", "exports"], function (require, exports) {
    "use strict";
    var Greeter = (function () {
        function Greeter(message) {
            this.greeting = message;
        }
        Greeter.prototype.greet = function () {
            return "Hello, " + this.greeting;
        };
        return Greeter;
    }());

});
define(["require", "exports"], function (require, exports) {
        "use strict";
        var Greeter = (function () {
            function Greeter(message) {
                this.greeting = message;
            }
            Greeter.prototype.greet = function () {
                return "Hello, " + this.greeting;
            };
            return Greeter;
        }());
        exports.Greeter = Greeter;
        return Greeter;
    });
由于生成错误生成了JS:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}
return Greeter;
define(["require", "exports"], function (require, exports) {
    "use strict";
    var Greeter = (function () {
        function Greeter(message) {
            this.greeting = message;
        }
        Greeter.prototype.greet = function () {
            return "Hello, " + this.greeting;
        };
        return Greeter;
    }());

});
define(["require", "exports"], function (require, exports) {
        "use strict";
        var Greeter = (function () {
            function Greeter(message) {
                this.greeting = message;
            }
            Greeter.prototype.greet = function () {
                return "Hello, " + this.greeting;
            };
            return Greeter;
        }());
        exports.Greeter = Greeter;
        return Greeter;
    });
实际需求是:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}
return Greeter;
define(["require", "exports"], function (require, exports) {
    "use strict";
    var Greeter = (function () {
        function Greeter(message) {
            this.greeting = message;
        }
        Greeter.prototype.greet = function () {
            return "Hello, " + this.greeting;
        };
        return Greeter;
    }());

});
define(["require", "exports"], function (require, exports) {
        "use strict";
        var Greeter = (function () {
            function Greeter(message) {
                this.greeting = message;
            }
            Greeter.prototype.greet = function () {
                return "Hello, " + this.greeting;
            };
            return Greeter;
        }());
        exports.Greeter = Greeter;
        return Greeter;
    });
但根据新的typescript版本1.8,返回不应该是一个函数的外部。我尝试了一些替代方案。但并没有用,我需要和上面代码一样的返回语句,或者其他任何选择

注意:使用VS2012 Typescript生成ECMAScript 3,使用VS2015 Typescript生成ECMAScript 5。我使用的是淘汰赛2.3和杜兰达尔2.0.1

图像:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}
return Greeter;
define(["require", "exports"], function (require, exports) {
    "use strict";
    var Greeter = (function () {
        function Greeter(message) {
            this.greeting = message;
        }
        Greeter.prototype.greet = function () {
            return "Hello, " + this.greeting;
        };
        return Greeter;
    }());

});
define(["require", "exports"], function (require, exports) {
        "use strict";
        var Greeter = (function () {
            function Greeter(message) {
                this.greeting = message;
            }
            Greeter.prototype.greet = function () {
                return "Hello, " + this.greeting;
            };
            return Greeter;
        }());
        exports.Greeter = Greeter;
        return Greeter;
    });