Typescript всегда жалуется на определенные свойства, отсутствующие в палитре. Мое приложение прекрасно работает, если я добавлю //@ts-ignore
, но я, очевидно, хочу этого избежать. Я новичок в Typescript, и вот что я попробовал.
import createMuiTheme, { ThemeOptions, Theme } from '@material-ui/core/styles/createMuiTheme';
import { PaletteOptions } from '@material-ui/core/styles/createPalette';
interface IPaletteOptions extends PaletteOptions {
chip: {
color: string,
expandIcon: {
background: string,
color: string,
},
},
}
interface ITheme extends Theme {
palette: IPaletteOptions,
}
const theme: ITheme = createMuiTheme({
typography: {
fontWeightMedium: 600,
fontFamily: ['Open Sans', 'Arial', 'sans-serif'].join(','),
},
palette: {
primary: {
main: '#43C099',
},
secondary: {
main: '#7AF3CA',
},
chip: {
color: '#C2C3C6',
expandIcon: {
background: '#808183',
color: '#FFFFFF',
},
},
},
} as ThemeOptions);
Это выдает ошибку,
Type 'Theme' is not assignable to type 'ITheme'.
Types of property 'palette' are incompatible.
Property 'chip' is missing in type 'Palette' but required in type 'IPaletteOptions
Это сбивает с толку ошибку для меня, потому что тип I ' я нигде не использую тип Palette
.
Как мне правильно расширить палитру здесь?