我正在尝试为Koa库构建更好的Flowtype定义,并且有点卡住了。
我的想法是使用泛型类型来为Koa指定自定义的Context类,因此我们实际上可以对其他字段(由中间件填充)进行类型检查,而不是将它们视为any
。
所以,我有:
declare type Context {…}
declare class Application<T: Context<T>> extends events$EventEmitter {
context: T,
…
}
很好...
但是Context有对Application的反向引用,Application是依赖于Context的泛型。我该如何在typelib中拼写?
这看起来不太正确,因为我实际上不想使用原始的Context
而是用户实际使用的类型
declare type Context {
app: Application<Context>
}