相关疑难解决方法(0)

Typescript 模块增强不起作用:类型“PaletteColorOptions”上不存在属性“main”

我一直在研究 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)

typescript reactjs material-ui react-typescript

8
推荐指数
1
解决办法
7551
查看次数

MUI 覆盖滑块颜色选项与模块增强

我正在尝试解决有关滑块组件上所选颜色的打字稿错误:

<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) 没有编译新的打字稿代码,要么我遗漏了一些东西。

reactjs material-ui

3
推荐指数
1
解决办法
4192
查看次数