TypeScript
Official docs outline
20 sections- TypeScript for JavaScript programmers
How TypeScript layers static types on JavaScript, type inference, structural typing and erased types.
- The basics
Static type checking, tsc compilation, noImplicitAny, strictNullChecks, and types erased at runtime.
- Everyday types
Primitives, arrays, any, type annotations, unions, type aliases, interfaces, literal types, null/undefined, type assertions.
- Narrowing
typeof/instanceof/in guards, truthiness narrowing, discriminated unions, type predicates, exhaustiveness with never.
- More on functions
Function type expressions, call signatures, generic functions, overloads, optional/rest parameters, this, void and unknown.
- Object types
Property modifiers, readonly, index signatures, excess property checks, extending interfaces, intersection types, generic objects.
- Generics
Generic functions, classes and constraints, type parameters, default type arguments and generic type aliases.
- Creating types from types
Overview of keyof, typeof, indexed access, conditional, mapped and template literal types for deriving new types.
- keyof, typeof and indexed access types
keyof type operator, typeof in type positions, and T[K] indexed access types.
- Conditional types
T extends U ? X : Y, infer, distributive conditional types, and type-level programming.
- Mapped types
Mapping over keys, modifiers (readonly, ?, -/+), key remapping with as, and homomorphic mapped types.
- Template literal types
String literal type composition, intrinsic string manipulation types, and pattern-based key typing.
- Utility types
Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, ReturnType, Awaited and NonNullable.
- Classes
Fields, constructors, access modifiers, abstract classes, implements, inheritance, parameter properties, override, this types.
- Modules
ES module syntax, import type, export, module resolution, CommonJS interop and module detection.
- Type compatibility and inference
Structural typing rules, assignability, variance, subtype relations, best common type and contextual typing.
- Enums and declaration merging
Numeric and string enums, const enums, interface and namespace merging, and module augmentation.
- Declaration files
.d.ts files, ambient declarations, typing libraries, DefinitelyTyped and publishing types.
- Project configuration with tsconfig
tsconfig.json, compilerOptions, strict mode flags, include/exclude, target and module, project references.
- 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.