Как обьеденить два типа при merge в typesript?
typesript не срабатывает обьеденение двух объектов в которых есть одинаковые свойства
если режим разработки я хочу объединить два конфига.
if (mode === 'development') {
return merge(productionConfig, Configuration);
}
Интерефейсы имею такие
export type IConfiguration = {
devServer: {
port: number;
historyApiFallback: boolean;
};
};
export interface IproductionConfig {
entry: {
main: string[];
};
devServer?: {
port: number;
historyApiFallback: boolean;
};
}
при слияние в функции merge получаю ошибку
"Аргумент типа "IConfiguration" нельзя назначить параметру типа "IproductionConfig". Свойство "entry" отсутствует в типе "IConfiguration" и является обязательным в типе "IproductionConfig" "
Хотя я указала все нужные свойства как можно это исправить?
файл вебпак конфиг
import { IproductionConfig } from './types';
import { merge } from 'webpack-merge';
import { Configuration } from './dev.config';
const MAIN = 'main';
const Config = (mode: string): IproductionConfig => {
const isProduction = mode === 'production';
const isDevelopment = mode === 'development';
return {
entry: {
[MAIN]: ['./src/index.js'],
},
};
};
module.exports = (env, { mode }): IproductionConfig => {
const product = Config(mode);
if (mode === 'development') {
return merge(product, Configuration);
}
return product;
};
файл devconfig
import { IConfiguration } from './types';
export const Configuration: IConfiguration = {
devServer: {
port: 3000,
historyApiFallback: true,
},
};
Источник: Stack Overflow на русском