Онлайн-редактор кода TypeScript для собеседований

Пишите и запускайте TypeScript прямо в браузере: компилятор проверит типы, а вывод программы появится рядом с кодом. Нужен второй человек — откройте сессию собеседования и отправьте ссылку кандидату. Бесплатно, без регистрации и без установки Node.js.

Открыть редактор TypeScript
Бесплатно, без регистрацииКак провести лайвкодинг-собеседование на 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 участников в одной сессии, правки и курсоры видны сразу.
  • Банк задач открыт без входа. После бесплатного входа — свои задачи, режим интервью с таймерами, оценка кандидата и история собеседований.

Как провести собеседование

  1. Нажмите «Провести собеседование» — сессия создастся с примером кода, его можно стереть или взять за основу задачи.
  2. Напишите условие в Markdown и отправьте ссылку кандидату: регистрация ему не нужна.
  3. Попросите кандидата сначала описать типы данных, а потом писать логику. Входные данные задавайте прямо в коде.

Типичные задачи на собеседовании

  • Описать типы для ответа 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.
Нужна ли регистрация?
Нет. Редактор открывается сразу, а кандидату для собеседования достаточно ссылки и имени. Банк задач тоже открыт без входа. Вход нужен для своих задач, режима интервью и истории.

Редактор для других языков