Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

300
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!