|
|
@ -1,8 +1,21 @@ |
|
|
|
|
|
/* tslint:disable:ban-types */ |
|
|
import { TemplateRef, Type } from '@angular/core'; |
|
|
import { TemplateRef, Type } from '@angular/core'; |
|
|
|
|
|
|
|
|
export type DeepPartial<T> = { |
|
|
export type DeepPartial<T> = Partible<T> extends never |
|
|
[P in keyof T]?: T[P] extends Record<string | number | symbol, any> ? DeepPartial<T[P]> : T[P]; |
|
|
? T |
|
|
}; |
|
|
: { |
|
|
|
|
|
[K in keyof T]?: DeepPartial<T[K]>; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
type Partible<T> = T extends Primitive | Array<any> |
|
|
|
|
|
? never |
|
|
|
|
|
: { |
|
|
|
|
|
[K in keyof T]: T[K] extends Function ? never : T[K]; |
|
|
|
|
|
} extends T |
|
|
|
|
|
? T |
|
|
|
|
|
: never; |
|
|
|
|
|
|
|
|
|
|
|
export type Primitive = undefined | null | boolean | string | number | bigint | symbol; |
|
|
|
|
|
|
|
|
export type InferredInstanceOf<T> = T extends Type<infer U> ? U : never; |
|
|
export type InferredInstanceOf<T> = T extends Type<infer U> ? U : never; |
|
|
export type InferredContextOf<T> = T extends TemplateRef<infer U> ? U : never; |
|
|
export type InferredContextOf<T> = T extends TemplateRef<infer U> ? U : never; |
|
|
|