Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

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

38,013 görüntüleme • 1 yıl önce •via X (Twitter)

10 Yorum

Beppo profil fotoğrafı
Beppo1 yıl önce

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

Matt Pocock profil fotoğrafı
Matt Pocock1 yıl önce

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

eskimojo profil fotoğrafı
eskimojo1 yıl önce

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)

Dan Gamble profil fotoğrafı
Dan Gamble1 yıl önce

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

CJ profil fotoğrafı
CJ1 yıl önce

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

Bernardo Garcés profil fotoğrafı
Bernardo Garcés1 yıl önce

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

Uğur profil fotoğrafı
Uğur1 yıl önce

Pretty clever, love it ❤️

nitriques profil fotoğrafı
nitriques1 yıl önce

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

Wollantine profil fotoğrafı
Wollantine1 yıl önce

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

Fernando profil fotoğrafı
Fernando1 yıl önce

@HeyGenLabs translate to Spanish

Benzer Videolar