vscode-embedded-string-high.../util.mts
2025-03-10 00:02:54 -04:00

11 lines
390 B
TypeScript

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);