ядро языкаcore language

JavaScript и TypeScriptJavaScript and TypeScript

Один раздел на оба языка — на практике почти никто не пишет новый проект на чистом JS без TS. Специфика самого JS (closures, prototypes, event loop) и система типов TS (generics, mapped types) — в одном месте. Каркас: 24 фичи, страницы ещё не написаны.One section for both languages — in practice almost nobody starts a new project in plain JS without TS. JS's own specifics (closures, prototypes, the event loop) and TS's type system (generics, mapped types) live in one place. Skeleton: 24 features, pages not yet written.

Ядро JavaScriptJavaScript core

без типов — динамика, замыкания, event loopno types — dynamics, closures, the event loop
Closuresзахват окружения функцией, лексическая область видимостиa function capturing its environment, lexical scopeinterview Prototypesпрототипное наследование, prototype chainprototypal inheritance, the prototype chaininterview this Bindingcall/apply/bind, стрелочные функции и лексический thisarrow functions and lexical thisinterview Event Loopmicrotasks vs macrotasks, порядок выполненияexecution orderinterview Promises & async/awaitасинхронность, обработка ошибок, Promise.all/race/allSettledasynchrony, error handling, Promise.all/race/allSettledinterview Destructuring & Spreadдеструктуризация объектов/массивов, spread/restobject/array destructuring, spread/rest Modules (ESM/CJS)import/export vs require, различия и интероп, differences and interop Generators & Iteratorsfunction*, yield, протокол итерируемости, the iterable protocol Proxy & Reflectперехват операций над объектом на низком уровнеlow-level interception of operations on an object WeakMap / WeakSetслабые ссылки, утечки памяти и их предотвращениеweak references, memory leaks and preventing them Symbolsуникальные примитивы, well-known symbols (Symbol.iterator)unique primitives, well-known symbols (Symbol.iterator)

Система типов TypeScriptTypeScript's type system

компилируется в JS, проверяется до рантаймаcompiles to JS, checked ahead of runtime
Genericsпараметризация типов, ограничения (extends)type parametrization, constraints (extends)interview Union & Intersection TypesA | B иand A & Binterview Mapped & Conditional Types[K in Keys]: T, T extends U ? X : Y, T extends U ? X : Y Utility TypesPartial, Pick, Omit, Record и другие встроенныеand other built-insinterview Type Guards & Narrowingtypeof/instanceof, пользовательские предикатыuser-defined predicates Interfaces vs Typesкогда что выбирать, declaration mergingwhen to pick which, declaration merginginterview Enumsчисловые/строковые enum, const enum, альтернативыnumeric/string enums, const enum, alternatives Decoratorsметапрограммирование классов, стадия стандартизацииclass metaprogramming, standardization stage Module Augmentationрасширение типов сторонних модулейextending third-party modules' types Strict Null ChecksstrictNullChecks, non-null assertion, optional chainingthe non-null assertion, optional chaining tsconfig Essentialsключевые опции компиляции и их влияние на строгостьthe key compiler options and how they affect strictness Template Literal Typesтипизированные строковые шаблоны, построение строковых типовtyped string templates, building string types unknown vs anyтипобезопасный "любой тип" против отключения проверокa type-safe "any type" vs opting out of checkinggotcha

статусstatus

Это каркас: 24 фичи по 2 разделам (JS-ядро без типов, система типов TS) зафиксированы, страницы ещё не написаны. Метка interview отмечает самые частые темы на технических собеседованиях, gotcha — то, что типично путает новичков.This is a skeleton: 24 features across 2 sections (untyped JS core, TS's type system) are locked in, pages not yet written. The interview tag marks the most common technical-interview topics, gotcha marks what typically trips up newcomers.