~/talk

Brand your types - Join me in the fight against weakly typed codebases!

Talkat NDC Oslo 2025 · 2025-05-19..05-23· [typescript]
links:none on file
slides:none on file

Claim: using branded types in TypeScript makes primitives like string and number carry intent so illegal states become unrepresentable. Concrete tools: TypeScript branded type syntax, type guards, and libraries named SAD and IOTS. Example: GraphQL article payloads are parsed at the edges into RelativeURL and AbsoluteURL brands so navigation and link code no longer revalidate every case. Outcome: zero runtime cost, compiler catches swapped username/password mistakes, tests simplify and the codebase stops getting polluted.

AI-written summary · about

  1. 0:00Branded types intro
  2. 1:37Primitive types problems
  3. 4:09Compile-time safety with branded types
  4. 6:18Fixing swapped arguments
  5. 7:43Parsing vs validating data
  6. 9:31Real-world branded types example
  7. 13:24Key takeaways
  8. 14:48Branded numbers examples
~/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.