首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型记录中的单独增广文件

类型记录中的单独增广文件
EN

Stack Overflow用户
提问于 2022-03-15 20:58:41
回答 1查看 64关注 0票数 1

我使用带有类型记录的资料ui,我必须声明主题界面和ThemeOptions,但只有在同一个文件中才能工作。是否有更好的方法来区分声明和实际tsx文件?

代码语言:javascript
运行
复制
import React from "react";
import ReactDOM from "react-dom";
import { createTheme } from "@mui/material";
import { orange } from "@mui/material/colors";

declare module "@mui/material/styles" {
  interface Theme {
    status: {
      danger: string;
    };
  }
  // allow configuration using `createTheme`
  interface ThemeOptions {
    status?: {
      danger?: string;
    };
  }
}
const theme = createTheme({
  status: {
    danger: orange[500],
  },
});


ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById("root")
);
EN

Stack Overflow用户

发布于 2022-11-22 17:28:55

只需转到项目中所需的目录,并创建一个[name].d.ts文件(随您喜好而定)。里面的东西,比如:

代码语言:javascript
运行
复制
import { ThemeOptions } from "@mui/material/styles"; // I strongly recommend use this path. 
import { Theme } from "@mui/material/styles"; // I strongly recommend use this path. 

declare module "@mui/material/styles" {
  interface Theme {
    status: {
      danger: string;
    };
  }
  interface ThemeOptions {
    status?: {
      danger?: string;
    };
  }
}

之后,您不必在任何地方导入该文件,TS项目将自动将新属性添加到ThemeThemeOptions

请记住,ThemeOptions使用createTheme函数,Theme使用useThememakeStyles函数,这两个文件都应该(更好)具有相同的属性(在Theme one中都是可选的)。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71488950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档