无法让 Typescript 理解 Material-UI 组件上的 css 道具(情感)
Can't get Typescript to understand the css prop (emotion) on Material-UI components
我想设置一个使用 Material-UI v4.11.4 的 Typescript 项目,以使用情感来为 MUI v5 版本做准备。目标是将情感引入项目中,以便开发人员可以开始使用新样式,而不是继续通过即将弃用的 makeStyles
函数编写样式。
除了 css
属性上的 Typescript 出现类型错误外,我一切正常。我一直在搜索文档寻找答案,但似乎找不到任何东西。是否需要安装一些额外的类型包,以便 Typescript 了解 MUI 组件上存在的 css
道具?
import { Button } from "@material-ui/core";
const Btn = () => {
return (
// this successfully applies styles, but causes a TS error
<Button css={{ backgroundColor: "red" }}>
Click Me
</Button>
);
}
TS 错误:
属性 'css' 在类型 'IntrinsicAttributes & { href: string; } & { children?: ReactNode; color?: Color | undefined; disabled?: boolean | undefined; disableElevation?: boolean | undefined; ... 6 more ...; variant?: "text" | ... 2 more ... | undefined; } & { ...; } & CommonProps<...> & Pick<...>' 上不存在。
好吧,我觉得自己很愚蠢。我认为这是 MUI 无法正确导出类型的问题,但事实证明我只需要在我的 tsconfig.json
中设置 jsxImportSource
"compilerOptions": {
"jsxImportSource": "@emotion/react"
}
我想设置一个使用 Material-UI v4.11.4 的 Typescript 项目,以使用情感来为 MUI v5 版本做准备。目标是将情感引入项目中,以便开发人员可以开始使用新样式,而不是继续通过即将弃用的 makeStyles
函数编写样式。
除了 css
属性上的 Typescript 出现类型错误外,我一切正常。我一直在搜索文档寻找答案,但似乎找不到任何东西。是否需要安装一些额外的类型包,以便 Typescript 了解 MUI 组件上存在的 css
道具?
import { Button } from "@material-ui/core";
const Btn = () => {
return (
// this successfully applies styles, but causes a TS error
<Button css={{ backgroundColor: "red" }}>
Click Me
</Button>
);
}
TS 错误:
属性 'css' 在类型 'IntrinsicAttributes & { href: string; } & { children?: ReactNode; color?: Color | undefined; disabled?: boolean | undefined; disableElevation?: boolean | undefined; ... 6 more ...; variant?: "text" | ... 2 more ... | undefined; } & { ...; } & CommonProps<...> & Pick<...>' 上不存在。
好吧,我觉得自己很愚蠢。我认为这是 MUI 无法正确导出类型的问题,但事实证明我只需要在我的 tsconfig.json
中设置jsxImportSource
"compilerOptions": {
"jsxImportSource": "@emotion/react"
}