Онлайн-редактор кода TypeScript для собеседований
Пишите и запускайте TypeScript прямо в браузере: компилятор проверит типы, а вывод программы появится рядом с кодом. Нужен второй человек — откройте сессию собеседования и отправьте ссылку кандидату. Бесплатно, без регистрации и без установки Node.js.
Бесплатно, без регистрацииКак провести лайвкодинг-собеседование на TypeScriptСовместный редактор кода: сравнение сервисовПример кода
interface Task {
title: string;
minutes: number;
}
function totalMinutes(tasks: Task[]): number {
return tasks.reduce((sum, t) => sum + t.minutes, 0);
}
const plan: Task[] = [
{ title: 'Two Sum', minutes: 15 },
{ title: 'LRU cache', minutes: 30 },
];
console.log(totalMinutes(plan));
Вывод
45
Что умеет редактор
- TypeScript 5.0: код компилируется командой tsc и выполняется в Node.js на сервере, поэтому версия одинакова у всех участников.
- Ошибки типов видны сразу: если строка попала туда, где ждут число, компилятор покажет ошибку с номером строки.
- Автотесты: если у задачи есть юнит-тесты, их можно запустить из сессии и увидеть, сколько прошло.
- Совместное редактирование в реальном времени: до 5 участников в одной сессии, правки и курсоры видны сразу.
- Банк задач открыт без входа. После бесплатного входа — свои задачи, режим интервью с таймерами, оценка кандидата и история собеседований.
Как провести собеседование
- Нажмите «Провести собеседование» — сессия создастся с примером кода, его можно стереть или взять за основу задачи.
- Напишите условие в Markdown и отправьте ссылку кандидату: регистрация ему не нужна.
- Попросите кандидата сначала описать типы данных, а потом писать логику. Входные данные задавайте прямо в коде.
Типичные задачи на собеседовании
- Описать типы для ответа API и написать функцию, которая безопасно разбирает его без any.
- Написать обобщённую функцию groupBy<T, K> и объяснить, как TypeScript выводит параметры типа.
- Реализовать debounce или throttle с правильными типами для аргументов функции.
- Сузить тип объединения через проверку поля kind и показать, что компилятор ловит забытый вариант.
- LRU-кэш на Map с операциями get и put за O(1).
- Утилитарные типы: собрать свой аналог Partial или Pick и объяснить, как работают mapped types.
Задачи на TypeScript с проверкой онлайн
Ограничения
- Пакеты npm и модули Node.js вроде fs не подключаются: импорт не находит модуль (ошибка TS2307). Код компилируется в ES2020, поэтому развёртка строки, Map или Set вида [...s] работает.
- Код выполняется в Node.js, а не в браузере: DOM, window и превью React недоступны.
- Один запуск ограничен 3 секундами и 64 КБ вывода.
Частые вопросы
- Какая версия TypeScript используется?
- TypeScript 5.0. Код компилируется и запускается на сервере в Node.js, поэтому результат одинаков у всех участников.
- Проверяются ли типы?
- Да. Перед запуском код проходит через компилятор tsc, и ошибки типов видны в выводе с номером строки — на собеседовании это хороший повод обсудить, почему компилятор недоволен.
- Есть ли автотесты для TypeScript?
- Да. Если у задачи есть юнит-тесты, их можно запустить из сессии. Свои задачи с тестами доступны после бесплатного входа. Задачи банка с пометкой «Любой язык» открываются с заготовкой и тестами на TypeScript.
- Нужна ли регистрация?
- Нет. Редактор открывается сразу, а кандидату для собеседования достаточно ссылки и имени. Банк задач тоже открыт без входа. Вход нужен для своих задач, режима интервью и истории.