javascript - Material-UI 中的 DefaultTheme 导致“扩充中的模块名称无效”错误
问题描述
如迁移文档(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] } }),
}
})
但我得到了 ts 错误Invalid module name in augmentation, module '@mui/styles/defaultTheme' cannot be found.ts(2664)
我究竟做错了什么?
解决方案
我不知道为什么,但是导入模块以解决它的副作用:
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 {}
}
推荐阅读
- python - 我正在尝试编写代码以消除文档中不必要的空格
- python - 如何从 python 文件运行 powerShell 脚本
- c++ - 在 C++ 中将不同的类转换为 void* 并安全返回
- mysql - 导入带引号 ( " ) 引号 ( ' ) 的 CSV 文件 - 导入的引号类型不匹配
- android - Apk 未优化
- python - 如何为 django 自定义用户创建登录视图?
- android - 如何在 Android 上添加/使用带有 Qt C++ 的 GStreamer 二进制库?
- c++ - 将 std::variant 转换为模板类实例的 std::tuple
- java - Java 编译器已完成但未创建可执行文件?
- sharepoint - SharePoint 重复事件是随机的?