You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MUI v5自定义调色板遇TypeScript类型错误求助

MUI v5 + TypeScript 自定义颜色类型错误解决

你已经扩展了主题的Palette和PaletteOptions,但Button组件的color属性类型并未包含自定义的my_custom_color,导致类型校验失败。需要额外扩展Button的颜色覆盖类型来解决。

完整主题配置代码

import { createTheme } from "@mui/material";

export default createTheme({
  palette: {
    my_custom_color: {
      main: "#e82020"
    }
  }
});

declare module "@mui/material/styles" {
  interface Palette {
    my_custom_color: Palette["primary"];
  }

  interface PaletteOptions {
    my_custom_color: PaletteOptions["primary"];
  }
}

// 扩展Button组件的color属性允许值
declare module '@mui/material/Button' {
  interface ButtonPropsColorOverrides {
    my_custom_color: true;
  }
}

关键说明

  • 新增的ButtonPropsColorOverrides扩展,是让TypeScript认可my_custom_color作为Button组件color属性的合法值。
  • 若要在其他组件(如Chip、IconButton)使用该自定义颜色,需对应扩展各自的PropsColorOverrides接口,例如ChipPropsColorOverrides、IconButtonPropsColorOverrides,写法与Button一致。

正确使用示例

<ThemeProvider theme={theme}>
  <Button variant="contained" color="my_custom_color">自定义颜色按钮</Button>
</ThemeProvider>

内容的提问来源于stack exchange,提问作者Darab Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:00:01