javascript - DefaultTheme i Material-UI orsakar felet `Invalid module name in augmentation`
Som beskrivs i migrationsdokumenten (v4 till v5) har jag lagt till detta i mitt 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] } }),
}
})
Men jag får TypeScript-felet Ogiltigt modulnamn i förstärkning, modulen '@mui/styles/defaultTheme' kan inte hittas.ts(2664)
Vad gör jag för fel?
Svar #1
Jag vet inte varför, men att importera modulen för bieffekter löser det:
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 {}
}
