I actually like the structural system a lot, and found that combined typescript expressiveness, typing a code base with TS is much more intent driven and requires much less contortionism that a class-for-everything nominal system such as Java. In fact, we ported one of our java backend to node/TS, 40% less code, and as typed if not more. Also, there are simple ways to bring some of the nominal characteristics when needed, but in a language like JS where object literal is a intrasic part of the language, a structural typing system is great fit.
So, yes, their are different approach, but not sure soundness is a good description of those differences.
Now, if TypeScript is used to code JavaScript ”a la” Java, then yes, it could be seen as a loss of functionality.
More examples are on https://github.com/Microsoft/TypeScript/wiki/FAQ