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 comparedCode 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
- Click "Run an interview" — the session is created with sample code, which you can delete or build your task on.
- Write the problem in Markdown and send the link to the candidate: they need no sign-up.
- 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.