Array of types to find common properties for
Default type for empty arrays (default: {})
interface Cat { name: string; type: 'cat'; legs: 4; }
interface Dog { name: string; type: 'dog'; legs: 4; }
interface Bird { name: string; type: 'bird'; legs: 2; }
type Result = CommonStrictProps<[Cat, Dog, Bird]>; // { name: string }
// 'type' excluded: 'cat' !== 'dog' !== 'bird'
// 'legs' excluded: 4 !== 2
Finds common properties across multiple types using strict type matching.
Recursively processes an array of types, applying strict matching rules. Properties are included only if they exist in all types with exactly matching types.