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

Syntax TypeScript构造函数-环境上下文错误,syntax,typescript,Syntax,Typescript,如何在TypeScript中创建构造函数 看了一堆指南,但语法肯定变了。以下是我的最新尝试: 汽车驾驶员 错误: 无法在环境上下文中调用实现 通过使用declare定义类类型。该类型只是定义的,不应该有实现,因此需要删除declare。然后它编译得很好 class Car { constructor(public engine: string) { this.engine = engine + "foo"; } } 但是,该代码编译为: var Car = (f

如何在TypeScript中创建构造函数

看了一堆指南,但语法肯定变了。以下是我的最新尝试:

汽车驾驶员 错误: 无法在环境上下文中调用实现


通过使用
declare
定义类类型。该类型只是定义的,不应该有实现,因此需要删除
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;
})();
它将两次设置
引擎
属性

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

class Car {

    public engine: string;

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

您收到的关于需要声明的错误是由于您使用了定义文件的扩展名
.d.ts
。如果希望将文件编译为JavaScript,则扩展名应该是
.ts

编辑2:

declare class Car {

    public engine;

    constructor(engine: string);
}

虽然我在要求
声明
时遇到了一个错误,但是谢谢,实际上我想我的测试用例被误导了,我得到的是一个定义(
.d.ts
),我想要一个构造函数(
声明模块Car{constructor(engine:string){}}
)。它定义了一个外部javascript库。好的,那么应该从构造函数中删除实现,我会在答案中给出一个例子。嗯,我编写接口的目的不需要参数。所以我尝试了
constructor(),失败,出现
TS1036
TS2304
错误。尝试使用
构造函数(无效)失败,出现
TS1109
错误,并尝试使用
构造函数(引擎:字符串)失败,出现
TS1005
错误。这是我的真实档案。我正在联系的构造器是我已经接受了你的答案,因为我一直在扩展这个问题。但如果你能回复我的水线评论,那就太好了(而且里面有+1!)。
declare class Car {

    public engine;

    constructor(engine: string);
}