put all the type definitions in the same place

This commit is contained in:
ewin 2025-03-10 00:58:38 -04:00
parent dac0a80d47
commit 8f2f475043
Signed by: erin
SSH key fingerprint: SHA256:swjoHhREbZPbWe+gyJNi24d4NAxJSyUIm3fpZj4z3wc
2 changed files with 7 additions and 7 deletions

View file

@ -1,6 +1,10 @@
import {Overwrite} from './grammar.mts';
export type Overwrite<T, U> = {
[K in keyof (T & U)]: K extends keyof U ? U[K]
: K extends keyof T ? T[K]
: never;
};
type AllMerged<Objects extends any[]> = Objects extends
export type AllMerged<Objects extends any[]> = Objects extends
[infer T, infer U, ...infer Rest] ? AllMerged<[Overwrite<T, U>, ...Rest]>
: Objects extends [infer T, ...infer Rest] ? T
: Objects extends (infer Rest)[] ? Rest