我创建了一个类型接口来向 Palette 添加自定义属性,如下所示:
declare module @material-ui/core/styles/createMuiTheme {
interface PaletteColor {
transparent?: string;
gradient?: PaletteColor;
}
interface Palette {
gradient?: PaletteColor;
transparent?: PaletteColor;
secondary?: {
transparent?: string;
}
}
interface PaletteColorOptions {
main?:string;
dark?:string;
light?:string;
transparent?: string;
gradient?: string;
test?: string
}
}
我正在尝试使用很多接口来让它工作......
然后我在我的主题中使用这些类型,如下所示:
export default function createMyTheme(options: ThemeOptions) {
return createMuiTheme({
...options,
})
}
我使用该函数通过导入并调用它来创建我的主题:
const theme = createMyTheme({});
然后我像这样设置我的组件样式:背景:theme.palette.gradient.main,
它告诉我:
Property 'gradient' does not exist on type 'Palette'.
环境:“@material-ui/core”:“^4.9.2”,“react”:“^16.12.0”,“typescript”:“^3.7.5”
这是我的完整主题:
const theme = createMyTheme({
palette: {
primary: {
main: '#5FB9A6',
dark: 'linear-gradient(-68deg, #151E27 , #335850)',
gradient: 'linear-gradient(-68deg, #151E27 , #335850)'
},
secondary: {
main: '#C68A77',
transparent: 'rgba(198, 138, 119, 0.7)'
},
error: {
light: '#e5a0a0',
main: '#CD5C5C',
dark: '#992c2c',
},
text: {
primary:'#20383C',
secondary: '#151E27',
hint: 'rgba(32, 56, 60, 0.7)'
},
background: {
paper: '#fff'
},
common: {
white: "#FFF"
}
},
typography: {
fontFamily: '"Work Sans"'
}
任何帮助将不胜感激!谢谢!