https://effectivetypescript.com/2024/03/24/flownodes/

TypeScriptのnarrowingがどのように動作しているかについて。 上から下に型を絞り込んでいるのではなく、シンボルが参照されてるポイントから制御フローグラフを逆にたどることで型を絞り込む実装になっている話