Что делает Babel?
Продвинутые темы
Babel — это транспайлер JavaScript: он преобразует современный JS (ES2015+) и синтаксические расширения (JSX, TypeScript) в код, понятный старым браузерам и окружениям.
Что делает
- Транспиляция синтаксиса — стрелки, классы, деструктуризация,
async/await→ эквивалент на ES5. - JSX → JS — превращает JSX в вызовы
React.createElement/jsx. - TypeScript/Flow — вырезает аннотации типов (без проверки типов).
- Полифилы — через
core-jsдобавляет недостающие методы (Promise,Array.includes).
// Вход
const sum = (a, b) => a + b;
// Выход (ES5)
var sum = function (a, b) { return a + b; };Как настраивается
- Presets — наборы плагинов:
@babel/preset-env,@babel/preset-react,@babel/preset-typescript. - Plugins — точечные преобразования.
- Browserslist — целевые браузеры, под которые компилировать.
Babel против TypeScript-компилятора
Babel только вырезает типы (быстро, без проверки), tsc проверяет типы. Часто их совмещают: tsc для проверки, Babel/esbuild для сборки.
Коротко для собеседования
Babel — транспайлер: превращает современный JS, JSX и TS в совместимый код через пресеты и плагины, добавляет полифилы через core-js. Типы он только вырезает без проверки, поэтому его совмещают с tsc.