Я пытаюсь создать лучшее определение Flowtype для библиотеки Koa, и я немного застрял.
Моя идея состояла в том, чтобы использовать универсальные типы, чтобы иметь возможность задавать настраиваемый класс Context для Koa, поэтому мы можем фактически проверять дополнительные поля (заполненные промежуточным программным обеспечением) вместо обработки их как any
.
итак, у меня есть:
declare type Context {…}
declare class Application<T: Context<T>> extends events$EventEmitter {
context: T,
…
}
прекрасный ...
но Context имеет обратную ссылку на Application, которая является общей зависимой от Context. Как мне это пишется в typelib?
Это не выглядит правильно, так как я на самом деле хочу использовать не оригинальный Context
, а тип, который фактически использовался пользователем
declare type Context {
app: Application<Context>
}