Unless I'm mistaken, it only really works well within a component. You don't get prop type checking in the component hierarchy.
Also, Vuex is very string-based, so you don't get payload or return type checking when you use Vuex. There are additional libraries that look to help this, but it's still an issue.
I could be wrong about any of this, but those are currently the issues I'm running in to.
[1] https://vuejs.org/v2/guide/typescript.html