Como se describe en los documentos de migración (v4 a v5), agregué esto a mi tema:
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] } }), } }) Pero me sale el error ts Invalid module name in augmentation, module '@mui/styles/defaultTheme' cannot be found.ts(2664)
¿Qué estoy haciendo mal?
No sé por qué, pero importar el módulo para efectos secundarios lo soluciona:
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 {} }