Improve QueryMatcher TypeScript definition (#7555)
This commit is contained in:
parent
42adedc468
commit
5c44cb5cc6
2 changed files with 14 additions and 2 deletions
|
@ -23,3 +23,14 @@ export type Writeable<T> = { -readonly [P in keyof T]: T[P] };
|
|||
|
||||
export type ComponentClass = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
|
||||
export type ReactAnyComponent = React.Component | React.ExoticComponent;
|
||||
|
||||
// Based on https://stackoverflow.com/a/58436959
|
||||
type Join<K, P> = K extends string | number ?
|
||||
P extends string | number ?
|
||||
`${K}${"" extends P ? "" : "."}${P}`
|
||||
: never : never;
|
||||
|
||||
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...0[]];
|
||||
|
||||
export type Leaves<T, D extends number = 5> = [D] extends [never] ? never : T extends object ?
|
||||
{ [K in keyof T]-?: Join<K, Leaves<T[K], Prev[D]>> }[keyof T] : "";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue