самореферентные универсальные типы в flowtype

#flowtype #flow-typed

#flowtype #типизированные по потоку

Вопрос:

Я пытаюсь создать лучшее определение Flowtype для библиотеки Koa и вроде как застрял.

Моя идея заключалась в том, чтобы использовать универсальные типы, чтобы иметь возможность указывать настраиваемый класс контекста для Koa, чтобы мы могли проверять дополнительные поля (заполняемые промежуточными программами) вместо того, чтобы рассматривать их как any .

итак, у меня есть:

 declare type Context {…}

declare class Application<T: Context<T>> extends events$EventEmitter {
    context: T,
    …
}
  

отлично…

но у контекста есть обратная ссылка на приложение, которое является универсальным, зависящим от контекста. Как мне записать это в typelib?

Это выглядит неправильно, поскольку я на самом деле хочу использовать не оригинал Context , а тип, который фактически использовался пользователем

 declare type Context {
    app: Application<Context>
}
  

Комментарии:

1. Актуальная проблема github.com/flow-typed/flow-typed/issues/3212