文档中有such example个mixins类。
time zone_1 zone_2 zone_3
(18, 1, 1, 9) (18, 360, 0.22) (193, 2702, 0.57) (183, 7686, 0.14)
(18, 1, 1, 10) (140, 5320, 0.51) (138, 8280, 0.45) (165, 6435, 0.23)
(18, 1, 1, 11) (32, 448, 0.46) (75, 1275, 0.57) (90, 2610, 0.97)
(18, 1, 1, 12) (117, 5382, 0.88) (72, 2376, 0.72) (119, 5593, 0.09)
但是如果我已经有type Constructor<T> = new(...args: any[]) => T;
function Tagged<T extends Constructor<{}>>(Base: T) {
return class extends Base {
_tag: string;
constructor(...args: any[]) {
super(...args);
this._tag = "";
}
}
}
的实现该怎么办。看来我只是尝试Tagged
。但是在我的情况下,Base extends Tagged
在一个3维方库中具有TypeScript实现,而Tagged
是由其他3维方库的工厂方法返回的JS构造函数。
混合它们的最佳方法是什么?换句话说,如何基于已经存在的类来定义mixin类(代码重用)?
答案 0 :(得分:0)
在此示例中,SearchResult
接受一个类,并返回一个增强的类。您不能像这样使用它:
Tagged
因为不是Base extends Tagged
扩展了Base
—而是相反。
如果同时提供了Tagged
和Base
,则应该像这样使用它们:
Tagged