我正在使用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
图片: