Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

311
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda