The Curious Engineer

All blogs / JavaScript / TypeScript

Effective TypeScript

effectivetypescript.com

Effective TypeScript: 83 Specific Ways to Improve Your TypeScript

JavaScript / TypeScriptSoftware / engineering practice

Posts
55 from 6 Mar 2020 to 19 Dec 2025
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://effectivetypescript.com/atom.xml

2025 2

  1. A Small Year for tsc, a Giant Year for TypeScript
  2. What TypeScript & Elixir Can Learn from each Other (Advent of Code 2024)

2024 11

  1. Item 74: Know How to Reconstruct Types at Runtime
  2. Notes on TypeScript 5.6
  3. A keyof puzzle
  4. A TypeScripter's Take on Zig (Advent of Code 2023)
  5. TypeScript 5.5: A Blockbuster Release
  6. Item 36: Use a Distinct Type for Special Values
  7. Now Available: Effective TypeScript, Second Edition
  8. The Making of a TypeScript Feature: Inferring Type Predicates
  9. Flow Nodes: How Type Inference Is Implemented
  10. The Hidden Side of Type Predicates
  11. Effective TypeScript Talk at Etsy (Dec 2020)

2023 10

  1. Don't Write Traditional Getter and Setter Methods in JavaScript and TypeScript
  2. Using infer to unpack nested types
  3. Overload on the type of this to specialize generics (The Lost Item)
  4. The Saga of the Closure Compiler, and Why TypeScript Won
  5. TypeScript and SQL: Six Ways to Bridge the Divide
  6. Recommendation Update: ✂️ Use knip to detect dead code and types
  7. Notes on TypeScript 5.1
  8. Item 30: Don’t Repeat Type Information in Documentation
  9. A first look at Deno through the Advent of Code 2022
  10. Notes on TypeScript 5.0 beta

2022 6

  1. All I Want for Christmas Is… These Seven TypeScript Improvements
  2. What's TypeScript compiling? Use a treemap to find out.
  3. A new way to test types
  4. My Twitch Debut (eslint-plugin-expect-type with Josh Goldberg)
  5. The display of types
  6. A TypeScript Perspective on Go: the 2021 Advent of Code

2021 9

  1. TypeScript Types: The First 500 Years (tsconf 2021 talk)
  2. Exclusive Or and the Optional never Trick
  3. In defense of interface: Using declaration merging to disable "bad parts"
  4. The Seven Sources of Unsoundness in TypeScript
  5. The trouble with Jsonify: Unify types instead of modeling small differences
  6. Advent of Code 2020, this time in Rust
  7. Four words to avoid in TypeScript writing
  8. Generic Tips Part 3: Avoid Repeating Type Expressions
  9. Top Posts of 2020

2020 17

  1. Generic Tips Part 2: Intersect what you have with whatever TypeScript wants
  2. Generic Tips Part 1: Use Classes and Currying to create new inference sites
  3. TypeScript Splits the Atom!
  4. Finding dead code (and dead types) in TypeScript
  5. Repeat yourself a little less: Strategies for mitigating prop drilling with React and TypeScript
  6. TypeScript Exercises
  7. The Golden Rule of Generics
  8. Writing a safe querySelector: the one-way street from values to types
  9. Type-safe blogs and books with literate-ts
  10. Use typed identity functions to guide type inference
  11. Item 54: Know How to Iterate Over Objects
  12. Unionize and Objectify: A Trick for Applying Conditional Types to Objects
  13. Item 19: Avoid Cluttering Your Code with Inferable Types
  14. What's the type of JSON.parse(​JSON.stringify(x))?
  15. Item 31: Push Null Values to the Perimeter of Your Types
  16. Item 41: Understand Evolving any
  17. Welcome to Effective TypeScript!