在typescript中的其他类的函数中创建类实例

时间:2013-10-22 18:44:18

标签: function class instance typescript

我想调试我的项目,我发现创建类的实例时遇到小问题。我试着用简单的例子来描述它。

//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不是构造函数的错误。我该如何解决这个问题?我有更困难的项目,这只描述问题的主要原则。在我的项目中,我必须在其他类的函数中创建一些类的实例。

3 个答案:

答案 0 :(得分:7)

听起来你已经编译成了engine.js和app.js,但实际上还没有像app.js那样通过script标签加载engine.js。

答案 1 :(得分:1)

除了有时与在运行时不包括脚本as Ryan answered(这个特定问题的情况)相关时,这也可能是由文件中类的排序引起的。

如果这是你遇到的问题,将错误中提到的类移动到使用它之前的位置将解决问题。

答案 2 :(得分:0)

使用--out编译器标志编译app.ts。这将包括生成文件中engine.ts的代码。