Как правильно типизировать свойства объекта ts?
Я создал компонент Icon, в пропсы которого приходит ключ объекта, далее по этому ключу я достаю SVG из объекта. Как мне правильно типизировать этот объект, чтобы в ручную не описывать каждое свойство?
Icon.ts
import { FC } from "react";
import icons from "assets/icons/icons";
interface Props {
name: string;
size: string;
}
export const Icon: FC<Props> = ({ name, size }) => {
const icon = icons[name]; // name: any
return <div className={styles.icon} dangerouslySetInnerHTML={icon}></div>;
};
icons.ts
export default {
heartSVG: `<svg></svg>`,
};
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
typeof позволяет получить тип переменной.
keyof позволяет получить типы ключей у переданного типа.
В итоге получится следующее
name: keyof typeof icons;