It's a relevant observation because this past week, I've been going hard on an open source side project that I'm hoping to release into the wild in the near future.
It's a #ruby gem for dry-types and dry-struct from #dryrb that gives you the ability to export all of your types and structs to #typescript
This is especially useful when you've got a Typescript frontend receiving responses from a Ruby backend! Being able to share types between the two sides will help keep things consistent and reduce having to maintain duplicate definitions of types.
I've still got a couple of issues to work out but it's getting close.
The two biggest issues I'm working on:
1. Ruby-land dependency resolution - in particular, following references to types from one module to another, and so on, to make sure that types that are referenced by a TS-expored type also get exported, or at the very least, flagged to the user.
2. Typescript-land dependency resolution - any types that depend on other types should have their dependencies exported first. For example, if you have a User type and a Users type which is an array of User, there's a dependency there and User needs to be exported first.
Slowly chipping away on this. I'm eager to get this out for a beta release.