我已经阅读过typescript如何提供一个简写,你可以在其中使用访问修饰符为constructor参数添加前缀,并在类上自动声明并从构造函数中复制
class Foo {
x: number;
constructor(x:number) {
this.x = x;
}
}
所以前面的例子可以重写为(注意公共x:数字):
class Foo {
constructor(public x:number) {
}
}
但我不能用带有对象文字的参数:
export class Hero {
constructor( {public id = 0 , public name = 'noname'}: {id?: number, name?: string } = {}) {
}
}
我收到双重错误:错误TS1005:'='预期。
是否可以在打字稿中进行?
答案 0 :(得分:1)
TypeScript尚不支持对象销毁和参数属性组合的特定要求。有关详细信息,请参阅https://github.com/Microsoft/TypeScript/issues/5326。 但你可以实现一个变通方法并为这个puprose定义一个接口(或类,它在TypeScript中并不重要),如下所示:
var TestInterface = (function () {
function TestInterface() {
}
return TestInterface;
}());
但是如果你将TestInterface定义为类,那么相应的construcor函数将被编译为JS。
{{1}}