我想调试我的项目,我发现创建类的实例时遇到小问题。我试着用简单的例子来描述它。
//this is saved in file Engine.ts
module Car {
export class Engine {
name: string;
constructor(name: string) {
this.name = name;
}
getName(): string{
return this.name;
}
}
}
本课程以他的名字描述简单引擎。现在我想在某些车辆中创建引擎:
///<reference path="Engine.ts"/>
//this is saved in file app.ts
module Car {
export class Vehicle {
name: string;
constructor(name: string) {
this.name = name;
}
buildCar() : string {
var engine = new Engine("Volkswagen 1.9TDI");
return "Name of the vehicle is " + this.name + " and has engine " + engine.getName();
}
}
}
window.onload = () => {
var car = new Car.Vehicle("Skoda Rapid");
alert(car.buildCar);
}
问题在于创建类Engine的实例。浏览器控制台返回Car.Engine不是构造函数的错误。我该如何解决这个问题?我有更困难的项目,这只描述问题的主要原则。在我的项目中,我必须在其他类的函数中创建一些类的实例。
答案 0 :(得分:7)
听起来你已经编译成了engine.js和app.js,但实际上还没有像app.js那样通过script
标签加载engine.js。
答案 1 :(得分:1)
除了有时与在运行时不包括脚本as Ryan answered(这个特定问题的情况)相关时,这也可能是由文件中类的排序引起的。
如果这是你遇到的问题,将错误中提到的类移动到使用它之前的位置将解决问题。
答案 2 :(得分:0)
使用--out编译器标志编译app.ts。这将包括生成文件中engine.ts的代码。