Effective TypeScript
All Effective TypeScript Posts
2024
2024-09-30
Notes on TypeScript 5.6
2024-08-30
A keyof puzzle
2024-07-17
A TypeScripter's Take on Zig (Advent of Code 2023)
2024-07-02
TypeScript 5.5: A Blockbuster Release
2024-06-13
Item 36: Use a Distinct Type for Special Values
2024-05-21
Now Available: Effective TypeScript, Second Edition
2024-04-16
The Making of a TypeScript Feature: Inferring Type Predicates
2024-03-24
Flow Nodes: How Type Inference Is Implemented
2024-02-27
The Hidden Side of Type Predicates
2024-01-31
Effective TypeScript Talk at Etsy (Dec 2020)
2023
2023-12-31
Don't Write Traditional Getter and Setter Methods in JavaScript and TypeScript
2023-11-29
Using infer to unpack nested types
2023-10-27
Overload on the type of this to specialize generics (The Lost Item)
2023-09-27
The Saga of the Closure Compiler, and Why TypeScript Won
2023-08-29
TypeScript and SQL: Six Ways to Bridge the Divide
2023-07-29
Recommendation Update: ✂️ Use knip to detect dead code and types
2023-06-27
Notes on TypeScript 5.1
2023-05-31
Item 30: Don’t Repeat Type Information in Documentation
2023-04-27
A first look at Deno through the Advent of Code 2022
2023-02-07
Notes on TypeScript 5.0 beta
2022
2022-12-25
All I Want for Christmas Is… These Seven TypeScript Improvements
2022-07-30
What's TypeScript compiling? Use a treemap to find out.
2022-05-28
A new way to test types
2022-04-18
My Twitch Debut (eslint-plugin-expect-type with Josh Goldberg)
2022-02-25
The display of types
2022-02-06
A TypeScript Perspective on Go: the 2021 Advent of Code
2021
2021-12-10
TypeScript Types: The First 500 Years (tsconf 2021 talk)
2021-11-11
Exclusive Or and the Optional never Trick
2021-06-03
In defense of interface: Using declaration merging to disable "bad parts"
2021-05-06
The Seven Sources of Unsoundness in TypeScript
2021-04-09
The trouble with Jsonify: Unify types instead of modeling small differences
2021-03-24
Advent of Code 2020, this time in Rust
2021-02-03
Four words to avoid in TypeScript writing
2021-01-20
Generic Tips Part 3: Avoid Repeating Type Expressions
2021-01-09
Top Posts of 2020
2020
2020-12-09
Generic Tips Part 2: Intersect what you have with whatever TypeScript wants
2020-12-04
Generic Tips Part 1: Use Classes and Currying to create new inference sites
2020-11-05
TypeScript Splits the Atom!
2020-10-20
Finding dead code (and dead types) in TypeScript
2020-10-01
Repeat yourself a little less: Strategies for mitigating prop drilling with React and TypeScript
2020-09-10
TypeScript Exercises
2020-08-12
The Golden Rule of Generics
2020-07-27
Writing a safe querySelector: the one-way street from values to types
2020-06-30
Type-safe blogs and books with literate-ts
2020-06-16
Use typed identity functions to guide type inference
2020-05-26
Item 54: Know How to Iterate Over Objects
2020-05-12
Unionize and Objectify: A Trick for Applying Conditional Types to Objects
2020-04-28
Item 19: Avoid Cluttering Your Code with Inferable Types
2020-04-09
What's the type of JSON.parse(JSON.stringify(x))?
2020-03-24
Item 31: Push Null Values to the Perimeter of Your Types
2020-03-09
Item 41: Understand Evolving any
2020-03-06
Welcome to Effective TypeScript!