In my experience, it was quite jarring to see a python function with a bunch of : -> Union[int,str], Optional, Any, etc.
Change is always hard.
I actually don't understand Optional in that mix. "Optional" basically means the value can be "None". You typically use it like this "Optional[str]" which means the value is a string or "None".
Thinking that typing is good and buying that a pasted-on-after-the-fact typing system is good are different matters.