如何在TypeScript中创建构造函数?
看了一堆指南,但语法肯定已经改变了。这是我最近的尝试:
declare class Car {
constructor(public engine: string) {
this.engine = engine + "foo";
}
}
无法在环境上下文中调用实现。
答案 0 :(得分:9)
通过使用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;
})();
将engine
属性设置两次。
这可能不是你想要的,所以应该在类上定义engine
属性,而不是构造函数。
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);
}