Video wird geladen...
Video konnte nicht geladen werden
Some VINTAGE TypeScript magic. Here's how to create a type-safe version of Object.assign, with an arbitrary number of objects.
38,013 Aufrufe • vor 1 Jahr •via X (Twitter)
10 Kommentare

Can anyone spot the bug in the code? If one argument of the merge has a partial property that is present in another obj. This type will create a wrong type and this could lead to bugs that are hard to spot. That's why most libs just intersect the objs

Great stuff! I suppose that filtering out partial properties during the Omit step would make sense.

honestly i don't find myself using Object.assign to mix different shapes, I'd rather use spread for that what i do tend to do is something like this (appears a couple times in the RTK codebase too)

That’s super insightful and pretty simple! Definitely need learn more about infer

Thank you so much for the explanation! Even the utility libs like lodash and remeda haven't solved this and are using brute force.

Nit, but using `object` means you can pass to your type something weird like a function `() => {}`. I'd have gone for `Record<string | number | symbol, unknown>`.

Pretty clever, love it ❤️

Very good Matt ! Prettify ftw (I will steal this)

Any idea if it is possible to type the merge of a generic [key: string]: string record with a value of a different type?

@HeyGenLabs translate to Spanish

