TypeScript构造函数 - 环境上下文错误

A T*_*A T 7 syntax typescript

如何在TypeScript中创建构造函数?

看了一堆指南,但语法必须改变.这是我最近的尝试:

car.d.ts

declare class Car {
    constructor(public engine: string) {
        this.engine = engine + "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

无法在环境上下文中调用实现.

tho*_*epo 10

通过使用declare你定义一个类类型.该类型仅定义,不应具有实现,因此declare需要删除.然后编译好.

class Car {
    constructor(public engine: string) {
        this.engine = engine + "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,该代码编译为:

var Car = (function () {
    function Car(engine) {
        this.engine = engine;
        this.engine = engine + "foo";
    }
    return Car;
})();
Run Code Online (Sandbox Code Playgroud)

这将engine属性设置两次.

这可能不是你想要的,所以engine应该在类上定义属性,而不是构造函数.

class Car {

    public engine: string;

    constructor(engine: string) {
        this.engine = engine + "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

您收到的有关需要的错误declare是由于您使用.d.ts定义文件的扩展名.扩展应该只是.ts您希望文件编译为JavaScript.

编辑2:

declare class Car {

    public engine;

    constructor(engine: string);
}
Run Code Online (Sandbox Code Playgroud)