Skip to content
52 / 58

Как типизировать паттерн visitor?

Visitor отделяет операции от структуры данных. В TypeScript каждый узел определяет метод accept(visitor), а visitor реализует интерфейс с методом visitX для каждого типа узла. Типизация строится на discriminated union узлов и интерфейсе visitor с перегрузками. TypeScript гарантирует, что visitor обработает все типы узлов через exhaustive typing. Альтернатива: map-based visitor через Record<Kind, Handler>, без классов.

Как типизировать паттерн visitor? | JScriptiser