- Можно использовать как в Node.js, так и в браузере - Поддерживает все современные браузеры и Node.js >= 10 - Работает большинство фич из Git: push, pull, clone, history, merge, ветки и конфигурация Git - Имеет CLI и API
- Типы в виде шаблонных строк (например type Greeting = Hello ${world}) - Переназначение свойств внутри типов с помощью as (например [K in keyof T as get${Capitalize<string & K>}]: () => T[K]) - Рекурсивные типы с условием (например type ElementType<T> = T extends ReadonlyArray<infer U> ? ElementType<U> : T)
Нововведения в компиляторе:
- paths теперь можно использовать без baseUrl - при включении checkJs автоматически включается allowJs - prod и dev версии для React JSX через "jsx": "react-jsx" / "react-jsxdev"
Другие нововведения: - поддержка @see из JSDoc в редакторах для TS и JS - свойста с abstract не могут быть асинхронными - теперь у resolve в промисах должен быть обязательный параметр
- Поддерживает загрузку файлов, директорий, URLов и Data URI - Можно перекинуть файлы через drag-n-drop, выбор в системе или copy/paste - Поддержка асинхронных загрузок с помощью AJAX и загрузок кусками (чанками) - Хорошая доступность из коробки - Оптимизация, обрезание, изменение размеров и применение фильтров перед отправкой файлов - Адаптируется и под телефоны, и под компьютеры
Из нового: - успешно внедрена инициатива Operation Byelog (обработка всех issue и выявление основных потребностей от коммьюнити) - автоматический инлайн шрифтов - Component Test Harnesses теперь работают для всех компонентов, а не только для Angular Material - улучшения отчётов и логирования - улучшения Angular Language Service - улучшенная и упрощённая поддержка Hot Module Replacement - более быстрая компиляция - экспериментальная поддержка webpack 5 - TSLint и Codelyzer задеприкейчены и заменены на ESLint - прекращена поддержка IE9, IE10 и IE mobile - обновлена дорожная карта
В новой версии CSS-in-JS библиотеки произошли следующие изменения:
- все пакеты были пеоеопубликованы под новую область – "@emotion". Для автоматической миграции со старых пакетов можно использовать codemod @emotion/pkg-renaming - ускорена сборка TypeScript проектов - теперь тему можно объявить как интерфейс внутри модуля emotion - Stylis (препроцессор и парсер для CSS, который используется в Emotion) был обновлён до 4 версии
- Поддерживает .png, .bmp, .jpg - Можно сравнивать разные форматы (например .jpg vs .png) - Нет зависимостей для macOS и Linux, но требует libpng для Windows
- не привязан к фреймворкам, и даже к рантаймам. Можно использовать в Node, Deno и даже в браузере - поддерживает Server push и client pull с помощью директив @defer и @stream - нет дополнительных зависимостей кроме graphql-js - гибок в настройке, позволяет реализовать свой GraphQL сервер из маленьких абстракций
Как и в Next.js, в Aleph поддерживаются: - статическая генерация и серверный рендеринг - файловый роутинг - HMR и Fast Refresh - встроенная поддержка CSS импортов
Помимо фич Next.js, у Aleph есть свои собственные: - Полная поддержка ESM (т.к. в Deno ESM - стандартная система) - ESM модули как в сервере, так и в браузере, в результате меньший чем в Next.js бандл - Отказ от поддержки IE11 (поддерживаются Chrome 61+, Edge 16+, Firefox 60+, Safari 11+ и Opera 48+)
graphql-let основан на graphql-codegen, но в отличие от просто генерации кода, ещё генерируются и типы + HMR (hot module replacement) работает без артефактов
Можно использовать в виде CLI, Webpack загрузчика или Babel плагина