Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

298
Vistas
Cómo manejar correctamente ESLint 'detect-object-injection'

En nuestro proyecto angular, el ESLint grita:

"Detecta la variable [tecla] como un operando de asignación de mano izquierda o derecha".

Es la regla detect-object-injection . Y dice que:

 //Bad: variable[key] = value;

Y como prueba proporcione el siguiente enlace con la descripción.

No voy a comenzar a argumentar que esta regla apesta.

Pero me interesa como solucionarlo. El enlace sobre tiene la solución:

La solución más directa aquí será evitar el uso de la entrada del usuario en los campos de nombre de propiedad. Sin embargo, esto no es razonable en todas las circunstancias, y debería haber una manera de usar las funciones del lenguaje principal de manera segura.

Otra opción es crear una lista blanca de nombres de propiedades permitidos y filtrar cada entrada de usuario a través de una función de ayuda para verificar antes de permitir su uso. Esta es una excelente opción en situaciones en las que sabe específicamente qué nombres de propiedad permitir.

En los casos en los que no tiene un modelo de datos estrictamente definido (que no es ideal, pero hay casos en los que tiene que ser así), entonces es válido usar el mismo método que el anterior, pero con una lista negra de propiedades no permitidas. elección.

Entonces, la primera opción "no usarla" no es aceptable ya que mi clave es dinámica y la notación entre paréntesis es la única forma de acceder a la propiedad.

La segunda solución tampoco es adecuada para mí, ya que no tengo y no puedo crear una lista blanca de nombres de propiedades permitidos.

Entonces, la última opción que tengo es usar una lista negra de propiedades no permitidas. Pero la pregunta es: ¿dónde llevar esta lista negra y cómo aplicarla? No tiene un ejemplo y me interesa cómo implementarlo correctamente en Angular.

¡Gracias por adelantado!

ACTUALIZACIÓN: Como mi pregunta no está del todo clara, la explicaré una vez más.

El código que tengo es:

 someObject[someDynamicKey] = 'someValue';

El problema de que los eslint traten esta línea como mala. Debido a la configuración de la propiedad del objeto mediante la notación de corchetes. EsLint dice que es peligroso. Entonces, pregunto cómo debemos hacerlo si no hay posibilidad de acceder a la propiedad del objeto con notación de puntos. ¿Ejemplos? ¡Gracias!

Explicación de por qué la notación de corchetes es peligrosa según ESLint.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que está utilizando un objeto como almacén de clave/valor, que generalmente está asociado con un Map .

Utilice un mapa en su lugar, ya que no tocará las propiedades del objeto y las claves no chocarán con las propiedades nativas de un objeto.

 const variable = new Map(); ... variable.set(key, value);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda