Not really? Having come deom a TS + Go startup it’s pretty trivial to wire up domain objects across each language and define a clean API boundary with some enforcement at build time. And Go was a far better choice for the backend than TS for some lower-level memory considerations.
With TS you don't have to "define a clean API boundary with some enforcement at build time". You can use the exact same types you're using to enforce endpoint schemas everywhere.
You don't need a middle man like OpenAPI (which I've used and it's a mediocre solution).