Extra Credit

TypeScript

Official docs outline

20 sections
  1. TypeScript for JavaScript programmers

    How TypeScript layers static types on JavaScript, type inference, structural typing and erased types.

  2. The basics

    Static type checking, tsc compilation, noImplicitAny, strictNullChecks, and types erased at runtime.

  3. Everyday types

    Primitives, arrays, any, type annotations, unions, type aliases, interfaces, literal types, null/undefined, type assertions.

  4. Narrowing

    typeof/instanceof/in guards, truthiness narrowing, discriminated unions, type predicates, exhaustiveness with never.

  5. More on functions

    Function type expressions, call signatures, generic functions, overloads, optional/rest parameters, this, void and unknown.

  6. Object types

    Property modifiers, readonly, index signatures, excess property checks, extending interfaces, intersection types, generic objects.

  7. Generics

    Generic functions, classes and constraints, type parameters, default type arguments and generic type aliases.

  8. Creating types from types

    Overview of keyof, typeof, indexed access, conditional, mapped and template literal types for deriving new types.

  9. keyof, typeof and indexed access types

    keyof type operator, typeof in type positions, and T[K] indexed access types.

  10. Conditional types

    T extends U ? X : Y, infer, distributive conditional types, and type-level programming.

  11. Mapped types

    Mapping over keys, modifiers (readonly, ?, -/+), key remapping with as, and homomorphic mapped types.

  12. Template literal types

    String literal type composition, intrinsic string manipulation types, and pattern-based key typing.

  13. Utility types

    Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, ReturnType, Awaited and NonNullable.

  14. Classes

    Fields, constructors, access modifiers, abstract classes, implements, inheritance, parameter properties, override, this types.

  15. Modules

    ES module syntax, import type, export, module resolution, CommonJS interop and module detection.

  16. Type compatibility and inference

    Structural typing rules, assignability, variance, subtype relations, best common type and contextual typing.

  17. Enums and declaration merging

    Numeric and string enums, const enums, interface and namespace merging, and module augmentation.

  18. Declaration files

    .d.ts files, ambient declarations, typing libraries, DefinitelyTyped and publishing types.

  19. Project configuration with tsconfig

    tsconfig.json, compilerOptions, strict mode flags, include/exclude, target and module, project references.

  20. Decorators, mixins and JSX

    Decorator syntax and semantics, mixin patterns, and JSX typing for React-style code.

Each section links to the official page. Titles and summaries by Extra Credit; the docs belong to their authors.

All 41