Я использую material-ui
для приложения реакции в typescript
. material-ui
предоставляет withStyles
, которые вводятся в компонент через его className. Но я не знаю, как объявить его тип. Ниже приведен пример кода:
import * as React from 'react';
import Grid from '@material-ui/core/Grid';
import { withStyles, createStyles } from '@material-ui/core/styles';
const BackgroundPanelStyles = createStyles({
root: {
height: '16rem',
}
});
const BackgroundPanelComponent = ({classes}: {classes: typeof BackgroundPanelStyles}) => {
return (
<Grid container className={classes.root}>
</Grid>
)
};
export const BackgroundPanel = withStyles(BackgroundPanelStyles)(BackgroundPanelComponent);
Я определил стили в BackgroundPanelStyles
объекте и использую его как тип свойства компонента. Но я получил ниже ошибок. Как правильно определить тип свойства в машинописи?
Argument of type '({ classes }: { classes: Record<"root", CSSProperties>; }) => Element' is not assignable to parameter of type 'ComponentType<ConsistentWith<{ classes: Record<"root", CSSProperties>; }, { classes: Record<"root", string>; }>>'.
Type '({ classes }: { classes: Record<"root", CSSProperties>; }) => Element' is not assignable to type 'FunctionComponent<ConsistentWith<{ classes: Record<"root", CSSProperties>; }, { classes: Record<"root", string>; }>>'.
Types of parameters '__0' and 'props' are incompatible.
Type 'ConsistentWith<{ classes: Record<"root", CSSProperties>; }, { classes: Record<"root", string>; }> & { children?: ReactNode; }' is not assignable to type '{ classes: Record<"root", CSSProperties>; }'.
Types of property 'classes' are incompatible.
Type 'Record<"root", string>' is not assignable to type 'Record<"root", CSSProperties>'.
Types of property 'root' are incompatible.
Type 'string' is not assignable to type 'CSSProperties'.