【发布时间】:2016-05-31 19:29:28
【问题描述】:
我在 ES6 目标环境中运行以下打字稿代码,它说“汽车不是构造函数”
我已关注link 并尝试将目标环境更改为 ES5。它工作正常。有人能说出为什么它不适用于目标 ES6。
这是我的 TypeScript 代码:
export class Cars {
constructor(public len: number,public wid: number) { }
}
export function getSize(): Cars {
return new Cars(20, 30);
};
错误是函数 getSize 中的“Cars 不是构造函数”。
顺便说一下,我正在尝试使用 Systemjs 加载所有文件。
顺便说一句,我在浏览器中遇到错误............不是在编译它时......
这是上面打字稿的编译代码....
System.register([], function(exports_1, context_1) {
"use strict";
var __moduleName = context_1 && context_1.id;
var Cars;
function getSize() {
return new Cars(20, 30);
}
exports_1("getSize", getSize);
return {
setters:[],
execute: function() {
class Cars {
constructor(len, wid) {
this.len = len;
this.wid = wid;
}
}
;
exports_1("Cars", Cars);
}
}
});
//# sourceMappingURL=Cars.js.map
【问题讨论】:
-
basarat 在链接问题中的回答建议不要使用
--out。你在用--out吗? -
不...我没有使用任何此类...顺便说一句,我在浏览器中收到错误.........不是在编译时...
-
@BaradwajAryasomayajula:那么请同时发布抛出错误的编译代码
-
@Bergi:我发布了编译后的代码......我使用的是最新的打字稿版本......我在下面的链接sitepoint.com/the-es6-conundrum 中读到它说浏览器尚不支持 ES6 ...这是代码无法在浏览器中运行的原因吗?
-
@BaradwajAryasomayajula:这里的 ES6 没问题。这实际上只是编译器在这里输出了无法工作的无效代码 - 这是一个 TS 错误,正如 Arnavion 正确识别的那样。你应该接受他的回答。