Lingua-e
JavaScript

¿Qué significa TS7053: Sin firma de índice?

← Errores

El error TS7053 de TypeScript ocurre cuando se usa una clave de cadena dinámica para acceder a un objeto que no tiene firma de índice. TypeScript no puede garantizar que una clave de cadena arbitraria exista en el objeto, por lo que requiere una clave tipada (keyof T) o una firma de índice explícita.

Por qué ocurre

  • Acceder a una propiedad de objeto con una variable de cadena en lugar de una clave literal.
  • Usar una clave de propiedad calculada sin restringir su tipo a keyof T.
  • Iterar sobre los resultados de Object.keys(), que se tipan como string[].

Ejemplos

JavaScript

Código que causa el error

interface Config {
  host: string;
  port: number;
}

const config: Config = { host: "localhost", port: 3000 };
const key = "host";
const value = config[key]; // dynamic access

Error en la terminal

error TS7053: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Config'.

Cómo solucionarlo

Restringe el tipo de clave a keyof Config. Usa Record<string, unknown> para objetos que verdaderamente tienen claves de cadena arbitrarias. Haz un cast con (obj as Record<string, unknown>)[key] cuando necesites una salida rápida pero agrega una verificación en tiempo de ejecución.

Código corregido

interface Config {
  host: string;
  port: number;
}

const config: Config = { host: "localhost", port: 3000 };
const key: keyof Config = "host";
const value = config[key]; // typed correctly

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis