Yep, I've used this pretty successfully, the ideal is to run it under realistic prod traffic over time to capture as many types as can flow into a given function, but a good set of unit/integration tests can also provide good coverage.

And if you re-use the same type store (SQLite DB) across multiple instrumented runs, you can further improve it.

https://github.com/Instagram/MonkeyType

RightTyper is much better in addition to running orders of magnitude faster.

https://github.com/RightTyper/RightTyper

(full disclosure, I am one of its authors).