JavaScript Event loop Object prototypes and classes Scope and closures Spread syntax, rest parameters and destructuring The this keyword TypeScript Compiler API Conditional types Index types Nullable types and optional parameters/properties Runtime type checking in TypeScript Type guards