Intersection has already been proposed, see
But it is not yet implemented. You can show your use cases on the typing issue tracker,
maybe they can be covered by Intersection (which will be most probably added at some point).


On 13 November 2017 at 20:32, Ilya Kulakov <> wrote:
I needed to declare a type that would mean "Any but None" and didn't find how.

Current implementation allows to expand set of allowed types, not narrow it.
Perhaps typing needs the rest of set operators in addition to Union?

Best Regards,
Ilya Kulakov

Python-ideas mailing list
Code of Conduct: