Language Pack · Mid to Senior
TypeScript Developer Pack
The type system, generics, utility types, inference and TS-in-production questions.
TypeScript depth: advanced types, inference, generics, and the design questions around TS at scale.
- Questions
- 360
- Topics
- 20
- Pages
- 247pages
- 360 questions, every one with a model answer
- Type-system cheat sheet
- Generics & utility types
- Inference exercises
- TS-in-prod questions
Get the TypeScript Developer Pack — $9
One-off. Delivered as a PDF by email the moment payment clears.
Prices shown are a USD base. Your local-market price is calculated at checkout in your own currency, plus any local sales tax.
What is inside
20 chapters, in the order the interviews tend to ask them:
- Structural typing and assignability
- Narrowing and control flow analysis
- Generics and type inference
- Conditional types and infer
- Mapped types and key remapping
- Template literal types
- Discriminated unions and exhaustiveness
- The satisfies operator
- Strictness flags and what each buys
- Declaration files and ambient types
- Module resolution and import types
- Generics in library design
- Type level performance
- Error message quality
- Migrating JavaScript to TypeScript incrementally
- Utility types and type composition
- Readonly, const assertions and literal types
- Function types, callbacks and overloads
- Classes, privacy and polymorphic this
- Type testing and tooling
How the answers are built
Each chapter opens with the checklist the question is really testing. A few from this pack:
- Types are compatible when their members are compatible, regardless of the name or the declaration that produced them.
- Control flow analysis narrows a union with typeof, instanceof, an in check, a truthiness test or a discriminant comparison.
- A type parameter describes a relationship between inputs and outputs rather than one concrete type.
- A conditional type picks between two types based on a type level condition, exactly like an if expression.
- A mapped type iterates the keys of a source type and produces a new type with the same key set.
- A template literal type interpolates literal types into a string pattern that the checker understands.
Questions this pack covers
- In TypeScript, what does it actually mean for two types to be structurally compatible?
- Why does a type alias for an object type get an implicit index signature while an interface does not?
- After a typeof check, how does the compiler know a value is a string rather than a number or a boolean?
- Why does a call to another function appear to reset a narrowed type, and what actually resets it?
- How many type parameters should a public function accept, and why does the answer differ from a private one?
- Which positions does the compiler infer a type argument from, and in what order?
- What does a conditional type look like in a type alias, and what do its two branches mean?
- Why does a conditional type over a naked type parameter distribute across a union?
Each one is answered in full in the pack, with the reasoning written out rather than a bullet list.
About this pack
- How many questions?
- 360, spread across 20 topics, written out in full across 247 pages.
- Do the answers just list keywords?
- No. Each answer is written as prose, because that is what you have to reproduce when someone asks you the question.
- How do I get it?
- Pay once and the PDF arrives by email immediately, with a signed download link.
- Can I get it refunded?
- Yes, if it is not what you expected. See the refund policy.