Type annotations is a form of self-documenting which is never out of date and, in most cases, it could be proved (rigorously verified) that there is no inconsistencies between how abstractions are declared and actually used.
Remember the classic: "In the face of ambiguity, refuse the temptation to guess".
To paraphrase a little: There must be one -- and exactly one -- correct way to do it. (Truth is one, falsehoods are infinite).
Just use mypy.
see also Static Typing