TypeScript
Basic Types
Primitives, any, unknown, never, void, arrays, tuples, unions and literals
Objects and Interfaces
Object shapes, interfaces, optional and readonly properties, index signatures
Type vs Interface
Declaration merging, extends vs intersection, implicit index signatures and which one to choose
Type Narrowing and Type Guards
typeof, instanceof, in, equality, discriminated unions, type predicates and assertion functions
Type Assertions
The as syntax, as const, satisfies, non-null assertion and when a type guard is safer
Enums
Numeric, string and const enums, and why unions often replace them
Generics
Type parameters, constraints, defaults and generic React components
Utility Types
Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, NonNullable, ReturnType, Parameters, Awaited and NoInfer
Type Operators
keyof, typeof, indexed access, mapped, conditional and template literal types, infer
Typing React
Props, children, events, hooks, context, wrapping native elements and ref as a prop in React 19
tsconfig and Strict Mode
What strict enables, useful flags beyond strict, new defaults in TypeScript 6 and a config for an app with a bundler