Я новичок в TS, пожалуйста, не злись на меня. У меня проблема с материальным интерфейсом. Не могу установить тип для [classes[color + 'CardHeader']]: color
Выдает ошибку Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Record<"cardHeader" | "cardHeaderPlain" | "warningCardHeader" | "successCardHeader" | "dangerCardHeader" | "infoCardHeader" | "primaryCardHeader", string>'.
Не могли бы вы объяснить мне, где я делаю ошибку?
import React, { ReactNode } from 'react';
import classNames from 'classnames';
import useStyles from './styles/cardHeaderStyle';
type CardHeaderProps = {
className: string,
children: ReactNode,
color: ColorType,
plain?: boolean,
};
type ColorType = 'warning' | 'success' | 'danger' | 'info' | 'primary';
const CardHeader = (props: CardHeaderProps): JSX.Element => {
const classes = useStyles();
const { className = '', children, color, plain, ...rest } = props;
console.log('classes', classes);
const cardHeaderClasses = classNames({
[classes.cardHeader]: true,
// [classes['primaryCardHeader']]: color,
[classes[color + 'CardHeader']]: color,
[classes.cardHeaderPlain]: plain,
[className]: className !== undefined,
});
return (
<div className={cardHeaderClasses} {...rest}>
{children}
</div>
);
};
export default CardHeader;
введите описание изображения здесь