I really hope just using static types alone doesn't give people confidence to refactor. It of course depends what "refactor" really means. Are we talking about a function, class, module/library, an entire application? Maybe in the function case, static type give more confidence, but in the others the way to de-risk is to have good tests. Static types only help catch one class of errors where refactoring can introduce several error classes depending on the specific case.
In other words, if static types alone are giving confidence to refactor, it is a false confidence except in the most trivial of cases.
In other words, if static types alone are giving confidence to refactor, it is a false confidence except in the most trivial of cases.