In this blog post, we examine how TypeScript handles JavaScript symbols at the type level.
If you want to refresh your knowledge of JavaScript symbols, you can check out chapter “Symbols” of “Exploring JavaScript”.
A conditional type in TypeScript is an if-then-else expression: Its result is either one of two branches – which one depends on a condition. That is especially useful in generic types. Conditional types are also an essential tool for working with union types because they let us “loop” over them. Read on if you want to know how all of that works.
A mapped type is a loop over keys that produces an object or tuple type and looks as follows:
{[PropKey in PropKeyUnion]: PropValue}
In this blog post, we examine how mapped types work and see examples of using them. Their most importing use cases are transforming objects and mapping tuples.
infer
In this blog post, we explore how we can extract parts of compound types via the infer
keyword.
It helps if you are loosely familiar with conditional types. You can check out section “Conditional types” in “Tackling TypeScript” to read up on them.
TypeDoc now lets us refer to parts of other files via {@includeCode}
. In this blog post, I explain how that works and why it’s useful.
satisfies
operatorTypeScript’s satisfies
operator lets us check the type of a value (mostly) without influencing it. In this blog post, we examine how exactly it works and where it’s useful.
In this blog post, we look at how can make things “read-only” in TypeScript – mainly via the keyword readonly
.
During the last two years, ESM support in TypeScript, Node.js and browsers has made a lot of progress. In this blog post, I explain my modern setup that is relatively simple – compared to what we had to do in the past:
JavaScript’s Arrays are so flexible that TypeScript provides two different kinds of types for handling them:
Array<string>
[number, string, boolean]
In this blog post, we look at the latter – especially how to compute with tuples at the type level.
In this blog post, we take a closer look at template literal types in TypeScript: While their syntax is similar to JavaScript’s template literals, they operate at the type level. Their use cases include: