Narrowing là cách TypeScript tinh chỉnh một type rộng (như một union) thành một type cụ thể hơn trong một nhánh code, dựa trên các kiểm tra lúc runtime. Compiler theo dõi luồng điều khiển (control flow) và cập nhật type tương ứng.
ts
() {
( x === ) {
x.();
} {
x.();
}
}
