私は Visual Studio で TypeScript 1.5 を使っています。app.ts というメイン クラスと、FizzBuzzManager.ts という別のクラスがあります。このコードのどこが間違っているのかわかりませんが、"TypeError: jim.FizzBuzzManager is not a constructor" というエラーが出力されます。
アプリ
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
ベストアンサー1
TypeError: jim.FizzBuzzManager はコンストラクタではありません
これは、以下を使用する場合によく発生するエラーです--out
:https://basarat.gitbook.io/typescript/main-1/outfile
ファイルを正しい順序でロードするのはあなたの責任です. out を使用せず、外部モジュールを使用してください。