TypeScriptTips

Make bugs impossible.
One TypeScript tip at a time.

I like the tricks :) – Kasia

Type aliases

TypeScript employs a structural type system, so type aliases are just aliases.

type Dollars = number
type Euros = number

const twoDollars: Dollars = 2
const pay = (euros: Euros) => {}

pay(twoDollars) // ⛔️
type Dollars = { _kind: 'dollars', amount: number }
type Euros = { _kind: 'euros', amount: number }

const twoDollars: Dollars = { _kind: 'dollars', amount: 2 }
const pay = (euros: Euros) => {}

pay(twoDollars) // ✅ Does not compile