吐槽下 typescript 的 mixin

2020-08-04 17:45:58 +08:00
 rikka

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

这写法还是麻烦了点,看起来不够优雅,没有装饰器那么直观

最终决定不折腾不蛋疼,代码改回去了😔

2086 次点击
所在节点    TypeScript
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/695590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX