Ввести тип родного брата в Typescript - PullRequest
0 голосов
/ 07 апреля 2020

Я хотел бы добиться этого в Typescript

const configuration: ResolveDeclaration = {
 deps: [Foo, Bar, Baz],
 resolveFn: (foo, bar, baz) => {} //<== foo, bar, baz has a type inherited in `deps` property accordingly
}

Я попробовал этот подход:

export interface ResolvableLiteral<D extends readonly Injectable[]> {
  deps: D;
  resolveFn: (...args: D) => any;
}

Но это, очевидно, не работает, так как он не выводит переданные значения , но обработайте это как Injectable[]

Обновление:

Позже эта конфигурация будет использоваться следующим образом:

const injectables = configuration.deps.map((token) => this.injector.get(token))
return configuration.resolveFn(...injectables)

Так что в resolveFn Я хочу получить типы зависимостей, которые я спросил у инжектора зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...