Online TypeScript Code Editor for Interviews

Write and run TypeScript right in the browser: the compiler checks the types, and the program output appears next to the code. Need a second person? Start an interview session and send the candidate a link. Free, no sign-up, no Node.js install.

Free, no sign-upHow to run a live coding interview in TypeScriptCollaborative code editors compared

Code sample

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));

Output

45

What the editor does

  • TypeScript 5.0: the code is compiled with tsc and runs in Node.js on the server, so every participant gets the same version.
  • Type errors show up at once: pass a string where a number is expected, and the compiler reports it with the line number.
  • Autotests: if a task has unit tests, you can run them from the session and see how many pass.
  • Real-time collaborative editing: up to 5 participants in one session, with edits and cursors visible instantly.
  • The task bank is open without an account. After a free sign-in: your own tasks, an interview mode with timers, candidate scoring, and interview history.

How to run the interview

  1. Click "Run an interview" — the session is created with sample code, which you can delete or build your task on.
  2. Write the problem in Markdown and send the link to the candidate: they need no sign-up.
  3. Ask the candidate to describe the data types first and write the logic second. Put input data right in the code.

Typical interview tasks

  • Type an API response and write a function that parses it safely, without any.
  • Write a generic groupBy<T, K> function and explain how TypeScript infers the type parameters.
  • Implement debounce or throttle with correct types for the wrapped function arguments.
  • Narrow a union type by checking a kind field and show that the compiler catches a forgotten case.
  • An LRU cache on Map with get and put in O(1).
  • Utility types: build your own Partial or Pick and explain how mapped types work.

Limitations

  • npm packages and Node.js modules such as fs are not available: an import cannot find its module (error TS2307). The code compiles to ES2020, so spreading a string, a Map or a Set like [...s] works.
  • The code runs in Node.js, not in a browser: the DOM, window, and a React preview are not available.
  • A run is limited to 3 seconds and 64 KB of output.

FAQ

Which TypeScript version is used?
TypeScript 5.0. The code compiles and runs on the server in Node.js, so the result is the same for every participant.
Are types checked?
Yes. Before the run the code goes through the tsc compiler, and type errors appear in the output with line numbers — in an interview that is a good prompt to discuss why the compiler complains.
Are there autotests for TypeScript?
Yes. If a task has unit tests, you can run them from the session. Your own tasks with tests need a free sign-in; task bank tasks marked «Any language» open with a TypeScript starter and tests.
Do I need to sign up?
No. The editor opens at once, and for an interview the candidate only needs the link and a name. The task bank is open without an account too. Signing in is needed for your own tasks, interview mode, and history.

Editors for other languages