【发布时间】:2016-04-07 12:12:29
【问题描述】:
我正在 Visual Studio 中使用 typescript 1.5。我有一个名为 app.ts 的主类,还有一个名为 FizzBuzzManager.ts 的主类。我无法弄清楚这段代码有什么问题,但它会输出错误“TypeError: jim.FizzBuzzManager is not a constructor”。
app.ts
namespace jim {
class Greeter {
element: HTMLElement;
span: HTMLElement;
timerToken: number;
constructor() {
window.console.log("constructing Greeter.");
this.init();
}
private init() {
window.console.log("Calling init.");
var _fizzBuzzManager: any = new jim.FizzBuzzManager();
}
}
window.onload = () => {
window.console.log("Hello")
var greeter = new Greeter();
};
FizzBuzzManager.ts
namespace jim {
export class FizzBuzzManager {
constructor() {
window.console.log("Making a FizzBuzzManager.");
}
public myThing: String = "Hi";
public fizzBuzz2() {
window.console.log("fizzbuzzing2 " + this.myThing);
}
}
export function fizzBuzz() {
window.console.log("export function fizzbuzz");
}
}
在浏览器中查看编译输出时的输出是这样的:
Hello app.js:15:9
constructing Greeter. app.js:5:13
Calling init. app.js:9:13
TypeError: jim.FizzBuzzManager is not a constructor app.js:10:36
【问题讨论】:
-
你要转成什么版本的es?
-
请添加您的转译脚本(即您的浏览器使用的
.js文件)。 -
目标 javascript 版本是 ES5。
-
它在 ES5 中对我来说运行良好...但我在 ES6 中收到“不是构造函数”错误...但是命名空间的使用情况有多好?
-
我在使用 typescript 时遇到了同样的问题。我继承了使用不同风格的 export/require 的旧项目,它们似乎只适用于一组非常特定的编译选项。通过查看旧的打字稿来进行逆向工程非常困难,编译它需要哪些确切的选项。
标签: typescript