# HG changeset patch # User cin # Date 2020-10-20 13:23:17 # Node ID 1a8a956a013fea52af3577b5ed22295540857b07 # Parent 38f6db48c7ab960e390d4d468f57a6917beae109 Fixed MatchingMemberKeys, ExtractMembers type parameter names and order 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;