gpt4 book ai didi

typescript - 如何使用 Material UI 选择器主题扩展 Material UI 3 主题 Typescript 定义

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:00 25 4
gpt4 key购买 nike

我尝试扩展 Material-UI 主题以合并 Material-UI-PickersTypescript 类型,用于以下 (最新)版本:

"@material-ui/core": "^3.9.2",
"material-ui-pickers": "^2.2.1",

Material UI picker 的底部有一个提及页面,解释主题可以通过 Typescript Theme augmentation 得到扩充.

建议这样做:

declare module '@material-ui/core/styles/overrides' {
import { MuiPickersOverrides } from 'material-ui-pickers/typings/overrides'
export interface Overrides extends MuiPickersOverrides { }
}

但是在 Material UI override.d.ts 文件中,Overrides 不是一个接口(interface),而是一个type(所以它不会以这种方式扩展),这让我觉得 Material-UI 类型已经发生了巨大变化,Material-UI-Pickers 指南(和打字)已过时。

关于如何正确扩展主题类型的任何线索?

最佳答案

找到解决方案。事实上,MuiPickers 使用属性名称 -> 样式规则 映射,而最新版本的 Material UI 使用属性名称 ->类名映射。

创建包含以下内容的 overrides-mui.d.ts 文件可以解决问题。

import { Overrides } from "@material-ui/core/styles/overrides";
import { MuiPickersOverrides } from 'material-ui-pickers/typings/overrides'

type overridesNameToClassKey = { [P in keyof MuiPickersOverrides]: keyof
MuiPickersOverrides[P] }

declare module "@material-ui/core/styles/overrides" {
export interface ComponentNameToClassKey extends overridesNameToClassKey { }
}

唯一的问题是样式选择器,例如 &$selected

关于typescript - 如何使用 Material UI 选择器主题扩展 Material UI 3 主题 Typescript 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com