Dan Vanderkam 🦋 Profile
Dan Vanderkam 🦋

@danvdk

Followers
3K
Following
1K
Media
94
Statuses
1K

Independent software developer, formerly @sidewalklabs and Google. Author of Effective TypeScript, now in its 2nd edition (May 2024): https://t.co/NV5HD4jX8C

Hudson Valley, NY
Joined February 2009
Don't wanna be here? Send us removal request.
@danvdk
Dan Vanderkam 🦋
2 years
It's here! 🎉 The 2nd edition of Effective TypeScript is now available in all formats. The bird on the cover is the same, but the content is throughly revised and expanded to reflect how TS is used in 2024. Get your copy today! @OReillyMedia https://t.co/BivGuCs0vp
8
25
183
@danvdk
Dan Vanderkam 🦋
6 months
Great article from @ollie about my long-running quest to find the highest-scoring Boggle board. I love the visuals!
Tweet card summary image
ft.com
‘Remarkably old-school’ method establishes supremacy of 1,045-word grid
0
0
3
@0xNadim1
Nadim
10 months
writing typescript for the first time in 6 years, and i think im enjoying it? new additions like type predicates inference make for a much nicer devex found a very cool article too documenting the development process of this feature from @danvdk https://t.co/lxpIFSVb30
Tweet card summary image
effectivetypescript.com
Over the past few months I became a TypeScript contributor and implemented a new feature, type predicate inference, that should be one of the headliners for TypeScript 5.5. This post tells the story...
1
1
8
@danvdk
Dan Vanderkam 🦋
1 year
Just published a big update to my "X-Ray Glasses for any types" VS Code extension: https://t.co/fPOq3Hm0YS It uses the built-in TypeScript server now, which makes it faster and more likely to work with your project. Give it a try! It found some anys in vscode and tsc itself!
0
0
23
@_ndeyefatoudiop
Ndeye Fatou Diop 🚢 💻 | DEV | 🇸🇳🇫🇷
1 year
Just started reading the 2nd edition of this book 🎉 I can’t recommend it enough! The first version made me an entire new dev.
@danvdk
Dan Vanderkam 🦋
2 years
It's here! 🎉 The 2nd edition of Effective TypeScript is now available in all formats. The bird on the cover is the same, but the content is throughly revised and expanded to reflect how TS is used in 2024. Get your copy today! @OReillyMedia https://t.co/BivGuCs0vp
6
1
23
@danvdk
Dan Vanderkam 🦋
1 year
For a weekend project, I wrote a VS Code extension: X-Ray Vision for any types. The scary thing about "any" is that it can appear in surprising place and silently spread. No more! This was frustrating, rewarding, and hopefully useful. Give it a try! https://t.co/fPOq3Hm0YS
11
14
207
@danvdk
Dan Vanderkam 🦋
1 year
This is the single passage of Effective TypeScript that I've received the most feedback on. Do you have an intuition for why these relationships hold? The latest blog post walks through how they work, what they mean, and why they're interesting https://t.co/9XCPTVzk8h
2
2
11
@danvdk
Dan Vanderkam 🦋
1 year
I learned Zig for last year's Advent of Code. It's a nice language with some great ideas, and TypeScript could learn a few things from it. Read on!
Tweet card summary image
effectivetypescript.com
What can Zig learn from TypeScript, and what can TypeScript learn from Zig?
1
2
24
@danvdk
Dan Vanderkam 🦋
1 year
@recursecenter @AndaristRake or if you prefer videos, check out the great discussion that @JoshuaKGoldberg and I had with Dimitri from @MiTypeScript
0
0
2
@danvdk
Dan Vanderkam 🦋
1 year
I'm very excited that TS 5.5 has officially landed with Inferred Type Predicates, the feature I built at @recursecenter earlier this year. Read all about the journey at https://t.co/o0ArSZnqP8. Special thanks to @AndaristRake for fixing all my bugs :)
Tweet card summary image
effectivetypescript.com
Over the past few months I became a TypeScript contributor and implemented a new feature, type predicate inference, that should be one of the headliners for TypeScript 5.5. This post tells the story...
@typescript
TypeScript
1 year
TypeScript 5.5 is now available! 🎉✨ Now with ✅ Inferred Type Predicates ✅ RegEx syntax checks ✅ The JSDoc @‍import Tag ✅ ${configDir} for easier tsconfig inheritance ✅ --isolatedDeclarations ✅ Lots of new optimizations And more! Try it today! https://t.co/DH6Vm9Fm01
5
6
69
@danvdk
Dan Vanderkam 🦋
1 year
Effective TypeScript Item 36: Use a Distinct Type for Special Values. This is a sample from the newly-released second edition. It discusses a common mistake in TypeScript code: using "", 0, or -1 to represent special cases like missing data.
Tweet card summary image
effectivetypescript.com
It's tempting to use "", 0 or -1 as special values: an empty string might represent text that hasn't loaded yet, or -1 could stand in for a missing number. In TypeScript, this is almost always a bad...
0
0
8
@JoshuaKGoldberg
Josh Goldberg 🦋
1 year
TypeScript 5.5's going to be a BANGER, and the headliner feature for a lot of us that I'm SO EXCITED about is because @danvdk wanted to be awesome. Congrats and thank you Dan for inferred type predicates! It was an honor just to cheer it on. 😄
@danvdk
Dan Vanderkam 🦋
1 year
If you want to learn the backstory of TypeScript 5.5's inferred type predicates, this is the video! I'm really happy with how it turned out. Kudos to Dimitri and @JoshuaKGoldberg for putting it together.
1
2
26
@danvdk
Dan Vanderkam 🦋
1 year
If you want to learn the backstory of TypeScript 5.5's inferred type predicates, this is the video! I'm really happy with how it turned out. Kudos to Dimitri and @JoshuaKGoldberg for putting it together.
@MiTypeScript
Michigan TypeScript
1 year
🤩 a super long-requested @typescript feature is coming in a few days to v5.5: @danvdk's work on inferred type predicates! So, naturally, we did a deep dive on it with Dan, the PR author himself! video link below👇
2
5
29
@JoshuaKGoldberg
Josh Goldberg 🦋
1 year
This is the thing! We're launching! I'M CO-ORGANIZING A CONFERENCE THIS YEAR!!!! SO MUCH WORK has gone into it and I'm SO HYPED TO GET IT PUBLIC!! 🤩🥳🤩🥳🤩🥳
@SquiggleConf
SquiggleConf
1 year
👋 Hello world! We’re so excited to finally be ready to meet you. Welcome to SquiggleConf: a Boston conference for excellent web dev tooling. 💙 🐟 October 3rd-4th in the Simons Theater at the New England Aquarium.
22
18
147
@johnny_reilly
John Reilly ❤️🌻
2 years
I'm always excited by a TypeScript release. This one is epic, and what's all the notable is how much community involvement there was in it. I loved seeing the shout outs to @TitianCernicova, @danvdk and others in the release post. Recognition is so important and so appreciated ❤️
@typescript
TypeScript
2 years
Announcing TypeScript 5.5 Beta! 📣 Now with type predicate inference, more type narrowing, an @‍import tag for JSDoc, the --isolatedDeclarations flag, performance & reliability improvements, and much more! https://t.co/wvLzGx5dk2
0
6
18
@danvdk
Dan Vanderkam 🦋
2 years
Very excited to see inferred type predicates headline TS 5.5! I hope everyone enjoys the bird-themed release notes 🦜
@typescript
TypeScript
2 years
Announcing TypeScript 5.5 Beta! 📣 Now with type predicate inference, more type narrowing, an @‍import tag for JSDoc, the --isolatedDeclarations flag, performance & reliability improvements, and much more! https://t.co/wvLzGx5dk2
0
3
32
@danvdk
Dan Vanderkam 🦋
2 years
This has been on my list of most-desired TS features for years. I’m genuinely curious to see what breaks under —strictReadonly. In 2016 this felt too strict, but in 2024 it’s surprising we don’t have this.
@AndaristRake
Mateusz Burzyński
2 years
1
0
6
@danvdk
Dan Vanderkam 🦋
2 years
One of my goals this year was to become a TypeScript contributor. Over the past three months, I did just that! This post tells the story of how Type Predicate Inference came about and what I learned along the way.
Tweet card summary image
effectivetypescript.com
Over the past few months I became a TypeScript contributor and implemented a new feature, type predicate inference, that should be one of the headliners for TypeScript 5.5. This post tells the story...
3
8
58
@danvdk
Dan Vanderkam 🦋
2 years
Excited to see that the new Flow Node Charts have at least one high-profile user. And may have even indirectly led to some TypeScript speedups! Visualizing something has a way of nudging you to make it better. @DavidSherret
Tweet card summary image
github.com
With this PR we optimize control flow graph construction to omit conditional constructs that have no control flow effects. Consider this example: function test(x: A | B | C) { let str = x instanc...
@danvdk
Dan Vanderkam 🦋
2 years
For my PR to infer type predicates, I needed to understand TypeScript's control flow graph. So I added a graph visualization to @DavidSherret's amazing TypeScript AST Viewer. It's live now and very fun to play with! Edges go backwards in execution order. https://t.co/zAMBas5FWH
1
0
17