Typing related bugs that aren't caught in unit testing are very rare.
I disliked JavaScript and love python. Typescript has replaced python as my labor of love language for now but a typed python in a similar manner would be great
JavaScript is a bad language and adding stuff to it makes it better. The same isn't true for Python.
This is a little misleading as mypy and pyright both support structural typing.
You can still do duck typing. Python's Protocol and TypedDict do that for objects and dicts, respectively. Python also has sum types. I've added type annotations to thousands of lines of legacy code and rarely have I had to change any logic to accommodate.
> Typing related bugs that aren't caught in unit testing are very rare.
Not true at all. Unless you're writing unit tests that cover every possible code path, your unit tests will miss stuff. And I'd argue that 100% test coverage is a Herculean effort to write and maintain, and isn't worth it. Static analysis gives you tons of checking for free. The biggest benefit is forcing you to properly handle function arguments that could be None. Are you always checking that values aren't None before using them?
It searches for a very narrow and rare set of bugs, which hardly ever happen.
Typing really exists to help a compiler, it's not a code correctness tool in the way you envision.