A,B 俩类需要有个共同的方法,我自然就写了个父类给他们继承,写完测试 OK
紧接着我想这里意思表达不太对,不应该用继承的思想,应该用 mixin 思想才准确一点,那我写个装饰器来把共同的方法 mixin 进去也简单
function mixins (...objects) {
return function (target) {
Object.assign(target.prototype, ...objects)
}
}
@mixins(obj)
class A {}
然后就是类型提示的问题一堆报红,我又不想用 any 头疼死我了,但这还不是关键,关键是这么做是无法推导出被 mixin 进去的方法
最后看了官网的介绍 https://www.typescriptlang.org/docs/handbook/mixins.html
这写法还是麻烦了点,看起来不够优雅,没有装饰器那么直观
最终决定不折腾不蛋疼,代码改回去了😔