如何声明与'myConstructor'中的模式匹配的构造函数?在示例中,编译器在将函数分配给'g'时说:Subsequent variable declarations must have the same type
。分配给'g'的功能应该是什么样的?
interface MyType {
myProperty: string;
}
interface myConstructor {
new(s: string): MyType
}
var g: myConstructor;
var g = function (s) {
this.myProperty = s;
}
var c = new g('abc');
答案 0 :(得分:2)
通常,在TypeScript中,您要编写一个类而不是构造函数:
class MyClass implements MyType {
myProperty: string;
constructor(s: string) {
this.myProperty = s;
}
}
var c = new MyClass('abc');
然后编译器会将类转换为构造函数以实现浏览器兼容性。使用TypeScript playground,您可以看到编译器输出如下(使用默认选项):
var MyClass = /** @class */ (function () {
function MyClass(s) {
this.myProperty = s;
}
return MyClass;
}());
var c = new MyClass('abc');
或者,如果您真的想编写实现接口的构造函数,请查看official documentation中的ClockConstructor
示例。