hey look a thing
This commit is contained in:
commit
dac0a80d47
12 changed files with 825 additions and 0 deletions
10
util.mts
Normal file
10
util.mts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import {Overwrite} from './grammar.mts';
|
||||
|
||||
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
|
||||
: never;
|
||||
|
||||
export const merge = <T extends any[]>(objects: T): AllMerged<T> =>
|
||||
Object.assign(Object.create(null), ...objects);
|
||||
Loading…
Add table
Add a link
Reference in a new issue