Typescript only has compile time checking. There are so many sharp blades that allow that to be bypassed. For example, deserialize something into a variable you've declared to be a certain type, and viola. The typing is incredibly weak.
Typescript also doesn't catch cases where metaprograming is used when calling a function. You can put anything you want in there.
I'm pretty sure your linter will catch this.
If you don't have a linter, get a linter.