Skip to content
JS/TS
::
Compendium
Topics
Graph
Search
⌘K
Knowledge Graph
JavaScript Runtime Semantics
Functions, Scope & Object Model
Async JavaScript
TypeScript Fundamentals
Advanced TypeScript
Modules, Runtime & Tooling
Testing & Code Quality
part of
prerequisite
related
JavaScript Runtime Semantics
Functions, Scope & Object Model
Async JavaScript
TypeScript Fundamentals
Advanced TypeScript
Modules, Runtime & Tooling
Testing & Code Quality
Values, Types & Primitives
Coercion & Equality
Truthiness & Control Flow
Objects & Property Descriptors
Prototype Chain & Inheritance
Iterables, Iterators & Generators
Errors, Exceptions & Stack Traces
Lexical Scope & Closures
Functions as Values
`this` Binding
Object Composition
Classes, Private Fields & Methods
Arrays, Collections & Immutability
Map, Set, WeakMap & WeakSet
Memory, References & Garbage Collection
Event Loop, Microtasks & Macrotasks
Promises & Error Handling
async/await
Promise Combinators
Fetch, AbortController & Cancellation
Timers, Scheduling & Debouncing
Concurrency Limits & Backpressure
Async Iteration & Streams
TypeScript Mental Model
Type Inference & Annotations
Structural Typing
Union Types & Narrowing
Interfaces vs Type Aliases
Generics
`any`, `unknown` & `never`
Discriminated Unions
Type Guards & Assertion Functions
Conditional Types
Mapped Types
Utility Types
`satisfies`, `as const` & Literal Types
Branded & Opaque Types
Declaration Files & Ambient Types
Node.js Runtime & Evented I/O
Browser vs Node Environments
ESM, CommonJS & Module Interop
tsconfig & Module Resolution
Package Managers, Lockfiles & Scripts
Vite & Modern Build Tooling
Transpilation Targets & Polyfills
Environment Variables & Config
Publishing Packages
ESLint & typescript-eslint
Prettier & Formatting
Vitest Unit Tests
Mocking & Test Doubles
Testing Async Code
Type-Safe API Boundaries
Runtime Validation
tsconfig Strictness