System.Interactive предоставляет Buffer() для этой цели. Некоторые быстрые тесты показывают, что производительность похожа на решение Сэма.
Buffer()
Вам нужно определить поле, используя объект:
type: {type: String}