Typescript works well using vim-polyglot.
For the autocomplete I don't actually use it, but the last time I tried, coc.vim was nice (it is actually the VSCode completion engine in vim).
I use coc.vim but the autocomplete for types doesn’t work well: if there are several types by the same name you’ll just get a list of the identical names and no way to tell their signature and/or what package they’re from. And if you have a variable or a type, I also can’t get its signature. These are things that VSCode does very well but I don’t want to switch!