I think the issue you're mentioning isn't so much that TS only enforces type safety at compile time, because that's true of Haskell, OCaml, C++, etc. as well, but that by its nature it can't enforce any type contracts with the large quantity of dynamically-typed JavaScript you're probably going to be dealing with. Of course, this is also an issue when safe Haskell, OCaml, etc. code interacts with compiled C code at runtime as well.
That said, the edge cases are few and far between. TS is a fantastic language to work with.