我一直在研究 Material-UI 并尝试在整个调色板中使用颜色系统。尽管在运行时运行良好,但编译时似乎存在一些问题。有人可以帮我解决以下错误:
错误:
类型“PaletteColorOptions”上不存在属性“main”。
类型“Partial”上不存在属性“main”。(2339)
这里也是 stackblitz:https://stackblitz.com/edit/react-up6bjl-hx1bbh ?file=demo.tsx
代码:
import * as React from 'react';
import {
createTheme,
Theme,
ThemeProvider,
PaletteOptions
} from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
declare module '@material-ui/core/styles' {
interface SimplePaletteColorOptions {
lighter?: string;
darker?: string;
}
interface PaletteColor {
lighter?: string;
darker?: string;
}
}
const Default = () : PaletteOptions => {
return {
primary: {
lighter: '#ddd',
light: '#ddd',
main: '#ddd',
dark: '#ddd',
darker: '#ddd'
},
};
};
export default function CustomColor() …
Run Code Online (Sandbox Code Playgroud) 我正在尝试解决有关滑块组件上所选颜色的打字稿错误:
<Slider
color="brown"
/>
Run Code Online (Sandbox Code Playgroud)
错误是:Type '"brown"' is not assignable to type '"primary" | "secondary" | undefined'.
我通过增强 createPalette 文件在我的主题上设置了棕色。
declare module '@mui/material/styles/createPalette' {
interface Palette {
brown: PaletteColor
}
interface PaletteOptions {
brown: PaletteColorOptions
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我仍然遇到错误,我在文件中查找Slider.d.ts
并找到了一个接口:SliderPropsColorOverrides
。
export interface SliderPropsColorOverrides {}
...
color?: OverridableStringUnion<'primary' | 'secondary', SliderPropsColorOverrides>;
Run Code Online (Sandbox Code Playgroud)
我尝试将它与我的棕色合并:
declare module '@mui/material/Slider' {
interface SliderPropsColorOverrides {
darkest_blue: PaletteColorOptions
}
}
Run Code Online (Sandbox Code Playgroud)
但没有运气。要么我的 IDE (PhpStorm 2021.3) 没有编译新的打字稿代码,要么我遗漏了一些东西。