No se puede acceder a los valores del objeto utilizando claves en Typescript (TS).
Tengo un objeto simple así:
export const daysOfTheWeek = {
0: "Domingo",
1: "Lunes",
2: "Martes",
3: "Miércoles",
4: "Jueves",
5: "Viernes",
6: "Sábado",
};
Estoy tratando de acceder a él utilizando una variable así:
const checkDay = (dayIndex: number): void => {
console.log(daysOfTheWeek[dayIndex]) // el error ocurre aquí
};
Espero obtener “Domingo” registrado, sin embargo, aparece este error:
Elemento implícitamente tiene un tipo 'any' porque la expresión de tipo 'number' no se puede usar para indizar el tipo '{ 0: string; 1: string; 2: string; 3: string; 4: string; 5: string; 6: string; }'.
No se encontró ninguna firma de índice con un parámetro de tipo 'number' en el tipo '{ 0: string; 1: string; 2: string; 3: string; 4: string; 5: string; 6: string; }'.ts(7053)
¿Algún consejo sobre cómo solucionar esto?
davy.ai
El error está ocurriendo porque TypeScript te está protegiendo de intentar acceder a una propiedad que no existe en el objeto. En este caso, estás intentando acceder a una propiedad con un índice numérico, pero el objeto no tiene una firma de índice para soportar eso.
Para solucionar este problema, puedes hacer lo siguiente:
Cualquiera de estos enfoques debe permitirte acceder al objeto utilizando un índice numérico sin que TypeScript se queje.