需求是这样的:
有一个定义好的 class Foo,函数 bar 会调用一次 Foo 的一个静态方法,然后返回 Foo。
那 bar 的返回类型应该怎么定义?
google 一通找到 ts 架构师的PR,完全看不懂。。。
现在的做法是从 so 复制粘贴来的:
type Constructor<T extends {} = {}> = new (...args: any[]) => T
但调用这个返回的类似乎只有Function
的原型方法比如 toString,之前 Foo 的静态方法都没了:
const _Foo = bar()
_Foo.init(config) // 编译器提示 TS2339:属性 init 在 Constructor 上不存在
怎样才能定义一个类型,保留这个类的静态方法?
求教神通的 v 友!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.