Loading video...

Video Failed to Load

Go Home

Visual Types, a humble collection of semi-interactive TypeScript lessons, is ready to be clicked upon. ← 👀

155,792 views • 10 months ago •via X (Twitter)

55 Comments

Kit Langton's profile picture
Kit Langton10 months ago

I'll add to this over time, so please let me know if there's anything you'd like to see covered or improved! 🫡

Kit Langton's profile picture
Kit Langton10 months ago

Let me know if anyone manages to unlock all the ACHIEVEMENTS. 😜

Matt Pocock's profile picture
Matt Pocock10 months ago

Beautiful! FYI this resolves to { x: never }

Kit Langton's profile picture
Kit Langton10 months ago

I had no idea! Fixed! 🫶 (Plus added one more example for the intersection of objects inside of an object)

Matt Pocock's profile picture
Matt Pocock10 months ago

Neat! I would also order the utility types much higher, and show the difference between Pick/Exclude/Omit/Extract, since that's a very common source of confusion

Kit Langton's profile picture
Kit Langton10 months ago

I'll do just that! I still need to work on the ordering and improve some of those last few examples (and add more). It gets a bit rougher as it goes on due to my self-administered first-draft deadline! 😜

trav's profile picture
trav10 months ago

@schickling super cool i love this ps on ios safari 18

Kit Langton's profile picture
Kit Langton10 months ago

@schickling Nooooooooooooo

Brandon McConnell's profile picture
Brandon McConnell10 months ago

looks sweet! already sharing in my network I think it could be kinda confusing to show the results in curly braces { … } as some new TS users may mistake that literally with objects (e.g. { key: value })

Kit Langton's profile picture
Kit Langton10 months ago

Doh. You're right. Darn mathematical set notation! I'll try to find another less ambiguous method for representing sets of values.

Kit Langton's profile picture
Kit Langton10 months ago

Maybe wrapping it in new Set([ 😜

Brandon McConnell's profile picture
Brandon McConnell10 months ago

Haha true – btw not the most intuitive to have to hold shift to go backward when clicking through an example either (though I do like it)

Kit Langton's profile picture
Kit Langton10 months ago

I’m more comfortable with that one because you could always use the arrow keys or click all the way around. I think the only other solution would be to have two explicit buttons, but that would be a bit of clutter. Thanks for the great feedback by the way! I really appreciate it :)

Brandon McConnell's profile picture
Brandon McConnell10 months ago

ofc!

Jeff Scott's profile picture
Jeff Scott10 months ago

The animations are elite, but they could use some mobile consideration. I wish all docs were this well done and interactive. Fantastic work!

Kit Langton's profile picture
Kit Langton10 months ago

@CanadianDevDad Yeah. It's definitely desktop first at the moment 😅 I've got to figure out how to rework some of them for phone sized screens.

Mat Fournier's profile picture
Mat Fournier10 months ago

Long time no see, this was great thanks.

Kit Langton's profile picture
Kit Langton10 months ago

Hey Mat! Thank ye :)

Kit Langton's profile picture
Kit Langton10 months ago

You got a rust job! Nice :)

Mat Fournier's profile picture
Mat Fournier10 months ago

Hah. Oh how I wish. 95% python, 5% rust.

Rahban Ghani's profile picture
Rahban Ghani10 months ago

You deserve a follow for this beauty.

Cyandev's profile picture
Cyandev10 months ago

I think we need another hidden badge for unlocking all achievements 👀

Kit Langton's profile picture
Kit Langton10 months ago

👏👏👏 Achievement achievements! Should this trigger yet another achievement, and so on; an infinitely linked list of congratulations?

Cyandev's profile picture
Cyandev10 months ago

Hoping that won't explode my call stack 🤣

Ruan's profile picture
Ruan10 months ago

olha que maneirinho @typescripting

Ari Dyckovsky's profile picture
Ari Dyckovsky10 months ago

Who knew clicking types could be such a soothing experience

Kit Langton's profile picture
Kit Langton10 months ago

I've spent centuries clicking types in my IDE to no avail. It's high time for clicked types to jiggle most pleasantly!

Sree's profile picture
Sree10 months ago

sound design and animation so immaculate i thought this was an award winning game

Brandon McConnell's profile picture
Brandon McConnell10 months ago

This is so cool. The practical use of keyboard navigation, scroll snapping, and sound here is absolutely delightful. I want every web application to feel this smooth.

Magnus Strømseng's profile picture
Magnus Strømseng10 months ago

Thank you so much for making this!

Pochi's profile picture
Pochi10 months ago

This is a fantastic way to learn TypeScript. We build Pochi with TypeScript and love seeing creative ways to help developers master it. Great work!

Steve Lauda's profile picture
Steve Lauda10 months ago

Damn good!

Kit Langton's profile picture
Kit Langton10 months ago

Thanks, Steve! 👈👈😎

Will Mruzek's profile picture
Will Mruzek10 months ago

Oh hey! Kit's back

Jonathan Aldas's profile picture
Jonathan Aldas10 months ago

I shared this with all my friends. Amazing!!

Carlos Ziegler's profile picture
Carlos Ziegler10 months ago

Wow 🤩 very very niceeee !! Thanks for sharing!!

Daniel Ashcroft 🫳🏼's profile picture
Daniel Ashcroft 🫳🏼10 months ago

Amazing work. Only because you seem like a perfectionist, I noticed there is vertical fade cutoff for code blocks on mobile (safari)

Kit Langton's profile picture
Kit Langton10 months ago

Doh! Yeah, I've got to fix that stuff. The desktop version is what I gave 99.9% of my attention to. 😅 (And thank you!)

Panduyasha's profile picture
Panduyasha10 months ago

this is so cool!

Eigil Nikolajsen's profile picture
Eigil Nikolajsen10 months ago

Beautiful!:)

BlackWolfNews's profile picture
BlackWolfNews10 months ago

Very useful, thank you.

aron's profile picture
aron10 months ago

whoa this is amazing

adamhorvath.eth 🦇🔊's profile picture
adamhorvath.eth 🦇🔊10 months ago

Amazing! Thank you

Dimitar's profile picture
Dimitar10 months ago

Oh wow that's awesome and the sound design 🕺

Pokémon's profile picture
Pokémon10 months ago

this is amazing.

Anh's profile picture
Anh10 months ago

In main-DosnN-le.css, `code { font-family: Commit Mono,ui-monospace,monospace }`. Should it be `code { font-family: var(--font-mono) }` to make it consistent? I might learn Typescript because of you :-)

Mark's profile picture
Mark10 months ago

Please release the source code, really like the animations. Are they done with Motion?

Kit Langton's profile picture
Kit Langton10 months ago

They are! 💯 I will release the source eventually, but it's going to be a little while! Working on some more things.

Mark's profile picture
Mark10 months ago

Thanks a lot!

Michael Vessia's profile picture
Michael Vessia10 months ago

Thanks Sam for adding vim controls

Ditectrev's profile picture
Ditectrev10 months ago

Super cool!

Srinivas Devaki's profile picture
Srinivas Devaki10 months ago

whoa amazing

Kit Langton's profile picture
Kit Langton10 months ago

Gimme 0 dollars NOW

Michael's profile picture
Michael10 months ago

@nexxeln one of the most delightful learning experiences I’ve ever had

Bhuvanesh S's profile picture
Bhuvanesh S10 months ago

This is beautiful. The attention to detail given to each aspect is mind-blowing.

Related Videos