Я хотел бы добиться этого в 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
Я хочу получить типы зависимостей, которые я спросил у инжектора зависимостей.