在TypeScript中实施必填字段(并使用var arg构造函数)?
由于TypeScript 1.3还没有抽象字段,因此要求设置字段的方法之一是将其作为构造函数参数 但是,由于此版本也没有扩展运算符,如果子级还必须将var arg传递给父级,则此操作不太有效。例如:在TypeScript中实施必填字段(并使用var arg构造函数)?,typescript,Typescript,由于TypeScript 1.3还没有抽象字段,因此要求设置字段的方法之一是将其作为构造函数参数 但是,由于此版本也没有扩展运算符,如果子级还必须将var arg传递给父级,则此操作不太有效。例如: class Parent { constructor (required1, required2, ...rest) { //... } class Child extends Parent { constructor (...args) { super(val1,
class Parent {
constructor (required1, required2, ...rest) { //...
}
class Child extends Parent {
constructor (...args) {
super(val1, val2, ???);
}
在普通的旧JavaScript中,此模式通常是通过切片并将参数应用于超级构造函数来实现的。但是,这种变通方法不起作用,因为只能调用super
,而不能启用apply()
我错过什么了吗?否则,还有其他方法可以实现同样的效果吗?遗憾的是,您需要欺骗TypeScript编译器
class Parent {
constructor (required1, required2, ...rest) { //...
if(required1 == void 0) return;
}
}
class Child extends Parent {
constructor (...args) {
super(undefined,undefined); // make the compiler happy
Parent.apply(this,[val1,val2].concat(args)) // the actual call
}
}
我已经记录了一个建议,以获得TS团队的意见: