##// END OF EJS Templates
Fixed MatchingMemberKeys, ExtractMembers type parameter names and order
cin -
r156:1a8a956a013f v1.4.0 default
parent child
Show More
@@ -52,7 +52,7 function _parse(value: any, context: Act
52 return t;
52 return t;
53 }
53 }
54
54
55 export type Cleaner<T> = ((x: T) => void) | MatchingMemberKeys<() => void, T>;
55 export type Cleaner<T> = ((x: T) => void) | MatchingMemberKeys<T, () => void>;
56
56
57 export type InjectionSpec<T> = {
57 export type InjectionSpec<T> = {
58 [m in keyof T]?: any;
58 [m in keyof T]?: any;
@@ -9,13 +9,13 export type Factory<T = {}> = (...args:
9
9
10 export type Predicate<T = any> = (x: T) => boolean;
10 export type Predicate<T = any> = (x: T) => boolean;
11
11
12 export type MatchingMemberKeys<T, From> = { [K in keyof From]: From[K] extends T ? K : never}[keyof From];
12 export type MatchingMemberKeys<T, U> = { [K in keyof T]: T[K] extends U ? K : never}[keyof T];
13
13
14 export type NotMatchingMemberKeys<T, From> = { [K in keyof From]: From[K] extends T ? never : K}[keyof From];
14 export type NotMatchingMemberKeys<T, U> = { [K in keyof T]: T[K] extends U ? never : K}[keyof T];
15
15
16 export type ExtractMembers<T, From> = Pick<From, MatchingMemberKeys<T, From>>;
16 export type ExtractMembers<T, U> = Pick<T, MatchingMemberKeys<T, U>>;
17
17
18 export type ExcludeMembers<T, From> = Pick<From, NotMatchingMemberKeys<T, From>>;
18 export type ExcludeMembers<T, U> = Pick<T, NotMatchingMemberKeys<T, U>>;
19
19
20 export interface MapOf<T> {
20 export interface MapOf<T> {
21 [key: string]: T;
21 [key: string]: T;
General Comments 0
You need to be logged in to leave comments. Login now