# total-typescript/beginners-typescript-tutorial: an exercise runner, not a video course

> The repository is the exercise half of Matt Pocock's beginner TypeScript course. It ships 17 problem and solution pairs driven by a CLI, and the README points at the paid site for the explanations.

**total-typescript/beginners-typescript-tutorial** — An interactive TypeScript tutorial for beginners

- Repository: https://github.com/total-typescript/beginners-typescript-tutorial
- Website: https://totaltypescript.com
- Stars: 7,971 · Forks: 1,114
- Language: TypeScript
- License: not declared
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/total-typescript-beginners-typescript-tutorial

## What the beginners-typescript-tutorial repository actually contains

This is one half of a course. The README says the video explanations, transcripts, text explanations and a built-in Stackblitz editor all live on Total TypeScript, and the repository holds the part you run locally. Each exercise exists twice, as a *.problem file and a *.solution file, and the README describes the loop plainly: read the problem, try to solve it, and let the tests tell you whether you succeeded.

The audience is narrow and stated. It is for people starting TypeScript, and the README frames the method as "active, exploratory learning" where you are asked to search the TypeScript handbook and experiment rather than copy a finished answer. If you already write generics comfortably, the exercises will not stretch you. If you have never run a Node project, the toolchain is a second thing to learn at the same time as the language.

## How the exercise CLI and the problem/solution pairs fit together

The mechanism is a prompt plus a test run. package.json wires the scripts to @total-typescript/exercise-cli, and the exercise script is `tt-cli run`. Run it with no argument and the CLI opens a prompt for choosing which exercise to run. Run it with a number and it goes straight to that exercise; the solution script adds the --solution flag. The package.json scripts enumerate the pairs up to e-17 and s-17, so the numbering is fixed rather than discovered at runtime.

Vitest is a devDependency, which is consistent with the README's promise that the tests pass when you have solved the problem. So the data flow is: the CLI selects a problem file, the test suite runs against it, and the pass or fail result is your feedback. The repository layout shows src/ alongside tsconfig.json and vite.config.mts, with vite-tsconfig-paths present to resolve path aliases during those runs. The --solution flag is how you switch the same runner over to the reference answer.

## Installing beginners-typescript-tutorial and running your first exercise

Clone the repository, then install dependencies. The README gives the install command as npm install, and the package.json declares the project as "type": "module", so it expects a modern Node setup.

```bash
npm install
```

That pulls the devDependencies, including the exercise CLI, TypeScript 5.x and Vitest. Next, start the exercise picker. The README documents npm run exercise and notes that npm run e is an alias for it.

```bash
npm run exercise
```

You should see a prompt asking which exercise you would like to run. Choose one, and the runner executes it against its tests. When the tests pass, you have solved it; the README says to then compare your answer with the *.solution file. If you would rather skip the prompt, the per-exercise scripts take the number directly, and the solution variant is a separate script.

```bash
npm run e-01
npm run s-01
```

The first runs exercise 01 as a problem; the second runs the same exercise with --solution, which is how you inspect the reference answer. The README also documents npm run solution and npm run s as the unnumbered equivalents.

## Where this tutorial stops and the paid course begins

The repository is deliberately incomplete as a learning resource. The README lists what the website adds: video explanations for each problem and solution, transcripts, text explanations, and a built-in Stackblitz editor. None of that is in the repository. What you get locally is a problem, a test suite, and a solution file. If a concept is unfamiliar, the README's own instruction is to check the TypeScript documentation and try something, which is a real constraint rather than a stylistic choice.

The licence situation is worth flagging. package.json declares "license": "GPL-3.0", while the repository metadata retrieved for this project carries no licence field at all. Those two sources disagree, and the README says nothing about reuse. GPL-3.0 is a copyleft licence, so if you plan to fold these exercise files into your own teaching material or a commercial course, the terms matter. That is a question for whoever handles licensing where you work, not something to settle by reading a package.json field.

The maintenance picture is mild but not silent. The repository is not archived, and the last push was on 2026-08-07. There are no releases, so there is no version history to read for breaking changes; the devDependencies float on caret ranges, which means npm install can resolve newer minor versions than the author tested against. A renovate.json at the top level suggests dependency updates are automated, but automation is not the same as a compatibility guarantee for the exercise files.

## When a written TypeScript reference beats an exercise runner

The obvious alternative is a documentation-first resource such as the TypeScript handbook, which the README itself points learners toward. The difference in approach is real. The handbook explains a concept and then shows an example you read; this repository gives you a broken or incomplete file and a test that fails until you fix it. Reading builds vocabulary faster, and it covers the whole language rather than seventeen exercises. Running the exercises builds the reflex of reading a compiler error and changing code until it stops complaining, which reading alone does poorly.

There is a middle option in the same family: a Stackblitz editor, which the README mentions as part of the website experience. That removes the local install entirely. The trade-off is that you lose your own editor and your own Node version, and you cannot keep the exercises in a repository alongside your other work. For someone behind a locked-down machine, the browser route may be the only one available; for someone who wants the exercises in version control, it is the wrong one.

## Who should adopt beginners-typescript-tutorial, and who should not

Take it if you learn by doing and you want a fixed, numbered set of TypeScript problems with the answer sitting in the same directory. The e-01 through s-17 scripts mean you can work through them in order without deciding what to practise next, and the test suite gives you a pass or fail signal instead of an opinion. It suits a self-directed learner who is comfortable running npm install and reading a compiler error.

Do not take it if you need the explanations bundled with the exercises, because they are not here. Do not take it as a TypeScript reference: seventeen exercises do not cover the language, and the README does not claim they do. And do not take it if you cannot run a Node toolchain locally and do not want to use the browser editor on the website, since the repository has no other execution path.

Verify two things first. Run npm run exercise and confirm the prompt appears and lists the exercises, which tells you the CLI installed correctly. Then open one *.problem and its *.solution side by side and check that the format matches how you like to work; if you find yourself wanting the video before attempting the problem, the repository alone will frustrate you.

## Conclusion

Adopt this if you want a runnable set of TypeScript problems with a solution next to each one and you are willing to supply your own explanations, or to buy them on Total TypeScript. Skip it if you need a self-contained course, a reference manual, or anything that runs without a local Node toolchain: the README sends you to the website for video, transcripts and text. Before committing, clone the repository and run npm run exercise to confirm the prompt lists the exercises, then open one *.problem and its matching *.solution to check that the format suits how you learn. Note that package.json declares GPL-3.0 while the repository metadata carries no licence field, so confirm the terms yourself before reusing the exercise files in your own material.

## FAQ

### What is the best way to start learning TypeScript with beginners-typescript-tutorial?

The README recommends active, exploratory learning: run the exercise, check the TypeScript documentation for something relevant, and try a solution until the tests pass. If you get stuck or succeed, compare your answer against the *.solution file. The video and text explanations are on the Total TypeScript website rather than in the repository.

### Is TypeScript easy to learn with this tutorial?

The repository is aimed at beginners and splits each exercise into a problem and a solution, with tests that pass once you have solved it. The README assumes you will search the TypeScript documentation yourself when a concept is unfamiliar, so the difficulty depends on how much guidance you need beyond the problem statement.

### Is this TypeScript tutorial still relevant in 2026?

The repository is not archived and its last push was on 2026-08-07. package.json pins TypeScript ^5.4.5 and Vitest ^2.0.0, and a renovate.json file sits at the top level, so dependency updates appear to be automated. There are no releases, so there is no changelog to check for breaking changes.

### What is the best TypeScript tutorial for someone who wants runnable exercises?

This repository is built around running code rather than reading it: npm run exercise opens a prompt for choosing an exercise, and the tests tell you whether your attempt works. The README positions it as one half of a course, with the explanations hosted on Total TypeScript.

## Sources

- [Issues](https://github.com/total-typescript/beginners-typescript-tutorial/issues)
- [Project website](https://totaltypescript.com)
- [README](https://github.com/total-typescript/beginners-typescript-tutorial/blob/main/README.md)
- [total-typescript/beginners-typescript-tutorial on GitHub](https://github.com/total-typescript/beginners-typescript-tutorial)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/total-typescript-beginners-typescript-tutorial
