First type
Second type
interface A { name: string; type: 'cat'; active: true; }
interface B { name: string; type: 'dog'; active: false; }
type Result = CommonStrictPairs<A, B>; // { name: string }
// 'type' excluded: 'cat' !== 'dog'
// 'active' excluded: true !== false
// Only properties with identical types are included
Finds common properties between two types using strict type matching.
Properties are included only if their types are exactly identical. Properties with incompatible types are completely excluded from the result (not included with
nevertype). Uses key remapping to filter properties at the type level.