fixes typing
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
type Provider<T> = (manager: DependencyManager) => Promise<T> | T;
|
||||
|
||||
type ClassType<T> = new () => T;
|
||||
type HasConstructor<T> = T extends new (...args: any[]) => unknown ? T : never;
|
||||
type ConstructorInstance<T> = T extends new (...args: any[]) => infer I ? I
|
||||
: never;
|
||||
|
||||
// deno-lint-ignore no-explicit-any
|
||||
type ModuleIdentifier = any;
|
||||
@@ -41,7 +43,9 @@ export class DependencyManager {
|
||||
*
|
||||
* @param identifier the identifier used to register the provider
|
||||
*/
|
||||
async resolve<T>(identifier: ClassType<T>): Promise<T>;
|
||||
async resolve<T>(
|
||||
identifier: HasConstructor<T>,
|
||||
): Promise<ConstructorInstance<T>>;
|
||||
async resolve<T>(identifier: ModuleIdentifier): Promise<T>;
|
||||
async resolve(identifier: ModuleIdentifier) {
|
||||
const module = this.modules.get(identifier);
|
||||
|
||||
Reference in New Issue
Block a user