I am a newbie to TypeScript and currently exploring the source code of Vue. However, I'm a bit confused about the grammar used in the code snippet below. Can anyone explain what '&' means in the following code? Also, could someone guide me on how to find this information in the official documentation?
/**
* This type should be used when an array of strings is used for a component's `props` value.
*/
export type ThisTypedComponentOptionsWithArrayProps<V extends Vue, Data, Methods, Computed, PropNames extends string> =
object &
ComponentOptions<V, DataDef<Data, Record<PropNames, any>, V>, Methods, Computed, PropNames[], Record<PropNames, any>> &
ThisType<CombinedVueInstance<V, Data, Methods, Computed, Readonly<Record<PropNames, any>>>;