Just use a run-type transformer like typia, hooked right into typescript-compile. Get your runtime type validators generated from nothing but the typescript definitions.
Alternatively, use a runtime validator the provides good type inference out of the box so you're still only declaring your types once.
I like typia for doing codegen basically in the way this request is asking: it hooks into the typescript API to create runtypes from plain old typescript
Alternatively, use a runtime validator the provides good type inference out of the box so you're still only declaring your types once.