type Merge = Omit & U; interface BaseConfig { id: string; debug: boolean; port: number; } interface FeatureConfig { port: string; // This will override the 'port' from BaseConfig apiUrl: string; timeout: number; } // Resulting type will have FeatureConfig's 'port' type type MergedConfig = Merge; const config: MergedConfig = { id: 'abc-123', debug: true, port: '8080', // Must be string due to FeatureConfig override apiUrl: 'https://api.example.com', timeout: 5000 }; // console.log(config);