传递参数给超类时出错.'扩展参数必须具有元组类型或传递给rest形参(TS2556).'



下面给出错误TS2556,我如何修复它?

class Test {
constructor(x: number) {}
}
class Test2 extends Test {
constructor(...args) {
super(...args); // TS2556
}
}

或者如果您使用jsdoc和tsc进行类型检查:

class Test {
/**
* @param {number} x
*/
constructor(x) {}
}
class Test2 extends Test {
constructor(...args) {
super(...args);
}
}

使用ConstructorParameters<T>,如果你调用一个函数,你可以使用Parameters<T>

class Test {
constructor(x: number) {}
}
class Test2 extends Test {
constructor(...args: ConstructorParameters<typeof Test>) {
super(...args);
}
}

或者对于jsdoc:

class Test {
/**
* @param {number} x
*/
constructor(x) {}
}
class Test2 extends Test {
/**
* @param  {ConstructorParameters<typeof Test>} args
*/
constructor(...args) {
super(...args);
}
}

相关内容

最新更新