It produces very good results with typescript. When there is an interface and I'm creating an object that implements the interface; it produces a result that fits into that type.
Same with Rust. Sometimes I just have to write a comment saying "display implementation for X" and it will autocomplete with the trait implementation. This is extra magical because I don't need to remember the exact detail of the trait.