Javascript Durandal水疗中心发布的淘汰版和打字稿1.8.4
我正在使用VS2012开发MVVM Durandal SPA应用程序。现在我使用Typescript 1.8.4迁移到VS2015。我正在使用typescript模块。所有类型脚本问题都已解决。但无论我在何处使用knockout传递绑定,在控制台中都显示为未定义。由于视图模型(模块)末尾的return语句 生成错误为“返回语句只能在函数体中使用”。 如果解决方案通过$root,那么我需要通过show多个位置 有什么简单的方法可以解决这个问题吗 受影响区域:在视图模型端,我需要编写返回语句。类似于下面的类型脚本代码,但它应该生成如下所述的JavaScript。若我修复了构建错误,那个么只有我能够生成JavaScript 使用模块的打字脚本: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多个位置 有什么简单的方法可以解决这个问题吗 受影响区域:在视图模型端,我需要编写返回语句。类似于
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;
});