forked from FOSS/BangleApps
layout.d.ts: Layout type - merge extracted ids union
parent
19a041e410
commit
6ff12f54cf
|
@ -1,5 +1,8 @@
|
||||||
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||||
|
|
||||||
|
type UnionToIntersection<U> =
|
||||||
|
(U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never
|
||||||
|
|
||||||
type ExtractIds<T extends Layout.Hierarchy, Depth extends Prev[number] = 9> =
|
type ExtractIds<T extends Layout.Hierarchy, Depth extends Prev[number] = 9> =
|
||||||
[Depth] extends [never]
|
[Depth] extends [never]
|
||||||
? never
|
? never
|
||||||
|
@ -15,7 +18,7 @@ type ExtractIds<T extends Layout.Hierarchy, Depth extends Prev[number] = 9> =
|
||||||
|
|
||||||
declare module Layout {
|
declare module Layout {
|
||||||
type Layouter<T extends Hierarchy> =
|
type Layouter<T extends Hierarchy> =
|
||||||
ExtractIds<T>
|
UnionToIntersection<ExtractIds<T>>
|
||||||
&
|
&
|
||||||
{
|
{
|
||||||
// these actually change T
|
// these actually change T
|
||||||
|
|
Loading…
Reference in New Issue