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.