Narrowing is how TypeScript refines a broad type (like a union) to a more specific one within a code branch, based on runtime checks. The compiler tracks control flow and updates the type accordingly.
ts
() {
( x === ) {
x.();
} {
x.();
}
}
