Как правильно типизировать свойства объекта 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;
→ Ссылка