Using 'classes' doesn't imply OO. They're a perfectly good way to organize data, at very least for data objects in TS.
It's fine to want to go functionally heavy, but if you're not using classes - which are the foundation of 'types' - then why bother with 'type'script? (Unless you mean to say 'interface'? Which is obviously not 'class' but implies the same usage of OO-founded keywords)