Concept
Overloads declare several call shapes for one function, so the return type can depend on how it was called. The implementation signature underneath handles all of them.
The tutor works through these with you, in conversation and code. A session ends when you have shown them, not when a video does.
A few lines that show Overload signatures doing its job.
function parse(input: string): number;
function parse(input: string[]): number[];
function parse(input: string | string[]): number | number[] {
return Array.isArray(input) ? input.map(Number) : Number(input);
}
const one = parse("42"); // number
const many = parse(["1", "2"]); // number[]Reaching for overloads when a union parameter or a generic would do. Overloads are checked in order and the implementation signature is invisible to callers, so they are easy to get subtly wrong.
Your roadmap puts these before Overload signatures, unless you already know them.
Once a session shows you understand Overload signatures, it comes back for review. Each review takes a minute and tells the memory model how well you still know it.