diff --git a/src/main/ts/di/ServiceDescriptor.ts b/src/main/ts/di/ServiceDescriptor.ts --- a/src/main/ts/di/ServiceDescriptor.ts +++ b/src/main/ts/di/ServiceDescriptor.ts @@ -52,7 +52,7 @@ function _parse(value: any, context: Act return t; } -export type Cleaner = ((x: T) => void) | MatchingMemberKeys<() => void, T>; +export type Cleaner = ((x: T) => void) | MatchingMemberKeys void>; export type InjectionSpec = { [m in keyof T]?: any; diff --git a/src/main/ts/interfaces.ts b/src/main/ts/interfaces.ts --- a/src/main/ts/interfaces.ts +++ b/src/main/ts/interfaces.ts @@ -9,13 +9,13 @@ export type Factory = (...args: export type Predicate = (x: T) => boolean; -export type MatchingMemberKeys = { [K in keyof From]: From[K] extends T ? K : never}[keyof From]; +export type MatchingMemberKeys = { [K in keyof T]: T[K] extends U ? K : never}[keyof T]; -export type NotMatchingMemberKeys = { [K in keyof From]: From[K] extends T ? never : K}[keyof From]; +export type NotMatchingMemberKeys = { [K in keyof T]: T[K] extends U ? never : K}[keyof T]; -export type ExtractMembers = Pick>; +export type ExtractMembers = Pick>; -export type ExcludeMembers = Pick>; +export type ExcludeMembers = Pick>; export interface MapOf { [key: string]: T;