If you're doing something so "fancy" that the compiler/type system doesn't support it, you should probably re-think it.
Nah, there are still some patterns, especially around metaprogramming, that TypeScript doesn't support. One example is the inability to refer to the current class inside a static method. This makes it really awkward to write things like factory methods, which in turn forces you to either resort to copy & paste coding, or fighting with the compiler. See https://github.com/Microsoft/TypeScript/issues/5863 for example.
Higher kinded types are currently not supported by the TS compiler and would be a highly appreciated feature.
Perhaps, but if that means doing it in a more cumbersome way, or with mire boilerplate, then that would be an area where dynamic languages have an advantage.
IMO, one of the geeat things about TS is that you can opt out of the type system for specific functions if you really want to.
Is it really the compiler/type system's fault, though? Sounds more like a language's design or specification flaw.