An intersection type combines multiple types into one. This allows you to add together existing types to get a single type that has all the features you need. For example, Person & Serializable & Loggable is a Person and Serializable and Loggable. That means an object of this type will have all members of all three types.
Intersection Types
表示这个变量同时拥有所有类型所需要的成员,可以作为其中任何一个类型使用。