Durandal SPA问题与淘汰和打字稿1.8.4

时间:2016-03-07 13:10:53

标签: javascript mvvm knockout.js visual-studio-2015 durandal

我正在使用VS2012开发MVVM Durandal SPA应用程序。现在我使用Typescript 1.8.4迁移到VS2015。我正在使用打字稿模块。所有打字稿问题都已解决。但是哪里我通过敲除传递绑定都在控制台中显示为未定义。由于视图模型末尾的返回语句(模块)。

构建错误是"返回语句只能在函数体中使用"。 如果解决方案是通过$ root,那么我需要传递显示许多地方。

有没有简单的方法来解决这个问题。

受影响的区域:在View模型上我需要编写return语句。像下面的类型脚本代码,但它应该生成如下所述的JavaScript。如果我修复了构建错误,那么我只能生成JavaScript。

使用模块的打字稿:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}
return Greeter;

由于构建错误而生成JS:

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;
    }());

});

实际需要JS是:

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;
    });

但是根据新的打字稿版本1.8,返回不应该是功能的一面。我尝试了一些替代方案Question。但是没有用,我需要return语句和上面的代码一样,否则任何替代方案。

注意:使用VS2012 Typescript生成ECMAScript3并使用VS2015 Typescript生成ECMAScript5。我正在使用Knockout 2.3和Durandal 2.0.1

图片:

enter image description here

0 个答案:

没有答案