Material-UI 中的 DefaultTheme 导致“增强中的模块名称无效”错误

use*_*695 12 javascript typescript reactjs material-ui

如迁移文档(v4 到 v5)中所述,我已将其添加到我的主题中:

import { createTheme, Theme } from '@mui/material/styles'
import { grey } from '@mui/material/colors'

declare module '@mui/styles/defaultTheme' { // <-- ts error
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
  interface DefaultTheme extends Theme {}
}

const { palette } = createTheme()
const { augmentColor } = palette

// Create a theme instance.
export const theme: Theme = createTheme({
  palette: {
    neutral: augmentColor({ color: { main: grey[400] } }),
  }
})
Run Code Online (Sandbox Code Playgroud)

但我收到 ts 错误Invalid module name in augmentation, module '@mui/styles/defaultTheme' cannot be found.ts(2664)

我究竟做错了什么?

Nea*_*arl 15

我不知道为什么,但是导入模块的副作用可以修复它:

import { Theme } from "@mui/material/styles";
import "@mui/styles";

declare module "@mui/styles/defaultTheme" {
  // eslint-disable-next-line @typescript-eslint/no-empty-interface (remove this line if you don't have the rule enabled)
  interface DefaultTheme extends Theme {}
}
Run Code Online (Sandbox Code Playgroud)