~/talk

Treat the Compiler With Compassion

Talkat JSHeroes 2025 · 2025-05-29..05-30· [typescript, developer-experience]
github:sodic
slides:none on file

Explains why TypeScript purposely trades off soundness and completeness, citing the GitHub non-goal page, concrete code that compiles but crashes (null narrowing broken by intervening calls), the object.keys indexing gotcha, and the inference choice that refuses flow-based union widening. Shows how enabling strict mode or using tools like TS reset or linters moves the dial toward safety, and demonstrates the verbose, impractical code that would be required to make the vanilla compiler fully sound.

AI-written summary · about

  1. 0:00Introduction
  2. 1:44Compiler as misunderstood dragon
  3. 3:51Why TypeScript frustrates
  4. 5:59Soundness completeness decidability
  5. 8:05TypeScript not sound by design
  6. 13:44Practicality vs correctness
  7. 16:15TypeScript not complete
  8. 19:24Misunderstandings vs flaws
  9. 20:49Object.keys gotcha
  10. 22:56Treat compiler with compassion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.