我正在尝试在typescript中实现mixins并从mixin类中获取自动完成功能。这是我的代码:
export type Constructor<T> = new (...args: any[]) => T;
export interface Test {
methodA();
methodB();
}
export type TestCtor = Constructor<Test>;
export function mixinTest<T extends Constructor<{}>>(base: T): TestCtor & T {
return class extends base {
constructor(...args: any[]) { super(...args); }
methodA() { }
methodB() {}
};
}
class A<T> {
value: T;
constructor(param: string) {}
}
class B extends mixinTest(A<{id: string}>) {
}
new B().methodA();
但是我得到了错误:没有基本的构造函数有数字 指定参数
或带有通用名称:
预期1个参数,但得到3个
我想念什么?
答案 0 :(得分:1)
解决方案
....
class _Base extends A<{ id: string }> { }
class B extends mixinTest(_Base) {
}
new B('Hey!').methodA();