In my experience, ?? and ?. are less useful than ?[...] in Python.
JavaScript/TypeScript have them because they don’t separate objects and dicts (Map in ES6 isn’t as popular as dict in Python). Additionally, they have undefined, which is distinct from null. As a result, they need these operators to extract information from possibly unstructured objects.
However, Python has dict, so I usually store unstructured data in a dict (e.g. data from json.loads()), and then “deserialize” it into a structured dataclass with minimal use of Optional fields. In my opinion, using too many Optional fields in a class is an anti-pattern: every additional Optional field leads to the loss of 1 bit of information, which needs to be checked everywhere else, so it’s better to use them as few as necessary. I worry that introducing ?? and ?. would encourage people to add more and more Optional types to their APIs, but ?[...] is basically fine because dicts are naturally unstructured.