In a large codebase, having typings, even basic ones, go a long way.
I don't know about the term static typing or if that's what really helps. I also annotate for readabilities sake. For instance, it's nice to know a variable in python is only intended to be 'ACTIVE' or 'INACTIVE':
from typing_extensions import Literal
ActivityStateLiteral = Literal['ACTIVE', 'INACTIVE']
# Lower in the code, e.g. inside a flask view
activity_state = ActivityStateLiteral = request.GET.get('activityState')
For TypeScript: type ActivityStateLiteral = 'ACTIVE' | 'INACTIVE'
// e.g. react component
const activityState: ActivityStateLiteral = props.activityState || 'ACTIVE'
That leaves me no doubt when I/a team member comes back 3/6 months later that I'm only dealing with 2 possibilities of what that variable can be (or should be). The intention itself also valuable, even if incorrect.