DEV Community

Cover image for Element implicitly has an 'any' type because expression of type 'any' can't be used to index type
Fernando Garcia
Fernando Garcia

Posted on

2

Element implicitly has an 'any' type because expression of type 'any' can't be used to index type

Tengo este objeto declarado con dos propiedades

photosPlanes:photoPLanes = {

  Entrenamiento: '', 
  Dieta: ''

}
Enter fullscreen mode Exit fullscreen mode

y quiero dinámicamente setear el valor de una de las propiedades del mismo de esta forma:

 if(element.urlThumb!==''){

        this.photosPlanes[element.name]=element.urlThumb

      }
Enter fullscreen mode Exit fullscreen mode

Pero obtengo el siguiente error:

Image description

LA SOLUCIÓN

Para resolver el problema usamos algo llamado Type Assertions

"photoPLanes" es la interface que uso

this.photosPlanes[ element.name as keyof photoPLanes ] = element.urlThumb
Enter fullscreen mode Exit fullscreen mode

En el articulo de Borislav Hadzhiev podemos encontrar otro ejemplo mas claro aun:

const str = 'name' as string;

const obj = {
  name: 'James Doe',
  country: 'Chile',
};

// 👇️ "James Doe"
console.log(obj[str as keyof typeof obj]);

// 👇️ type T = "name" | "country"
type T = keyof typeof obj;
Enter fullscreen mode Exit fullscreen mode

Sígueme y cualquier problema escríbeme que te ayudo 😉🤘
https://linktr.ee/fergolive

Retry later

Top comments (0)

Retry later
Retry later