Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

Some VINTAGE TypeScript magic. Here's how to create a type-safe version of Object.assign, with an arbitrary number of objects.

38,024 Aufrufe • vor 2 Jahren •via X (Twitter)

10 Kommentare

Profilbild von Beppo
Beppovor 2 Jahren

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

Profilbild von Matt Pocock
Matt Pocockvor 2 Jahren

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

Profilbild von eskimojo
eskimojovor 2 Jahren

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)

Profilbild von Dan Gamble
Dan Gamblevor 2 Jahren

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

Profilbild von CJ
CJvor 2 Jahren

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

Profilbild von Bernardo Garcés
Bernardo Garcésvor 2 Jahren

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>`.

Profilbild von Uğur
Uğurvor 2 Jahren

Pretty clever, love it ❤️

Profilbild von nitriques
nitriquesvor 2 Jahren

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

Profilbild von Wollantine
Wollantinevor 2 Jahren

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

Profilbild von Fernando
Fernandovor 1 Jahr

@HeyGenLabs translate to Spanish

Ähnliche Videos