interface ColorThemes { DEFAULT: string, DARK: string, } const colorThemes: ColorThemes = { DEFAULT: "default", DARK: "dark", } return ( <div> {Object.keys(colorThemes).map(key => <div>{colorThemes[key]}</div> )} </div> )Estoy tratando de recorrer una enumeración de cadenas. Pero visual studio intellisense se queja y dice:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'xxx'. No index signature with a parameter of type 'string' was found on type 'xxx'.Cualquier ayuda sería apreciada.
Object.keys(colorThemes) le da una lista de cadenas, pero en colorThemes[key] la clave debe ser una clave de ColorThemes, no cualquier cadena.
Pero como sabe con certeza que cada clave es siempre una clave de colorThemes, puede decirle a Typescript que asuma que:
<div> {Object.keys(colorThemes).map(key => <div>{colorThemes[key as keyof ColorThemes]}</div> )} </div>