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

TypeScript constructor - ambient contexts error

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

查看了很多指南,但语法一定已经改变了。这是我最近的尝试:

car.d.ts

declare class Car {
    constructor(public engine: string) {
        this.engine = engine + "foo";
    }
}

错误:

An implementation cannot be called in ambient contexts.

通过使用 declare,您定义了 class 类型。该类型仅被定义,不应有实现,因此需要删除 declare。然后它编译正常。

class Car {
    constructor(public engine: string) {
        this.engine = engine + "foo";
    }
}

但是该代码编译为:

var Car = (function () {
    function Car(engine) {
        this.engine = engine;
        this.engine = engine + "foo";
    }
    return Car;
})();

设置了 engine 属性 两次。

这可能不是您想要的,因此 engine 属性 应该在 class 上定义,而不是构造函数。

class Car {

    public engine: string;

    constructor(engine: string) {
        this.engine = engine + "foo";
    }
}

编辑:

您收到关于需要 declare 的错误是由于您对定义文件使用了 .d.ts 扩展名。如果您希望文件编译为 JavaScript.

,则扩展名应该只是 .ts

编辑 2:

declare class Car {

    public engine;

    constructor(engine: string);
}