type information is only available at compile time, not at runtime

Type guards are ways to check at runtime if an object matches. use of keywords

  • typeof
  • instanceof
  • in

instanceof

if(x instanceof SomeObjectConstructor)

typeof

if(typeof a === 'string')

typeof only works with “string” | “number” | “bigint” | “boolean” | “symbol” | “undefined” | “object” | “function”

in

if('firstName' in obj)

checks if attribute exists

(src: TypeScript Type Guards, AWS & Typescript Masterclass - 14. Typescript recap)