Подборка объединяет вопросы, отмеченные на этапах интервью в Сбер. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, backend.
Разделите виртуальный скролл и бесконечную подгрузку: первый ограничивает число DOM-элементов, второй получает новые порции данных. Они могут использоваться вместе.
Файл .d.ts должен входить в TypeScript-программу через files/include, импорт или подключённый пакет типов. Универсальной обязательной папки для него нет.
Кроме dependencies есть devDependencies, peerDependencies, optionalDependencies и bundledDependencies. Они описывают разные условия установки и распространения пакетов.
Каррирование превращает функцию нескольких аргументов в цепочку функций по одному аргументу. На практике это удобно для предварительной настройки преобразований и обработчиков.
Оптимизация начинается с измерения узкого места: сеть и рендер frontend, обработка backend или запросы БД. Улучшение несущественного участка может не повлиять на итоговую задержку.
Независимый deploy микрофронтендов создаёт риск несовместимых контрактов, общих зависимостей и разного поведения частей интерфейса. Свобода выпуска требует управления совместимостью.
Для статической проверки отсутствия допустимых свойств можно использовать Record<PropertyKey, never>. Тип {} для этого не подходит и не означает «пустой объект».
never полезен для недостижимых случаев, исчерпывающей проверки union и функций, которые не возвращают управление нормально. Реальный опыт лучше показать небольшим примером.
Достаточно Promise.resolve(1): он создаёт уже выполненный Promise со значением 1. Обработчик then всё равно вызывается асинхронно через очередь микрозадач.
Фильтрация перед сортировкой обычно уменьшает число сортируемых элементов: вместо всех n сортируются только m подходящих. Но корректность перестановки зависит от смысла фильтра.