Estoy importando el archivo, pero no puedo dar el tipo de archivo, ¿cómo puedo solucionar este problema?
import { capitalize } from "utils"; import * as Icons from "./"; type IconType = { name: string; }; const icon = ({ name, ...props }: IconType) => { const newName = capitalize(name); if (!Icons[newName]) return null; const CustomIcon = Icons[newName]; return <CustomIcon {...props} />; }; export default icon;Probablemente pueda solucionar su problema escribiendo Icons[newName as keyof Icons] .
Sin embargo, tiene muchas malas prácticas en su código que debe corregir:
import * as icons from "./pathToIcons"; . La importación por index.ts solo debería ocurrir si se importa desde fuera de la misma carpeta;const icon = (...) Un componente debe comenzar con letra mayúscula, const Icon = (...) ;{ name, ...props }: IconType Esto es incoherente, porque su tipo IconType solo tiene un name de atributo, por lo tanto, en su caso, TypeScript debería inferir props typeof never . Probablemente quieras que interface IconProps extends CustomIconProps { name: string }