1
resposta

Ola estou usando typescript e no meu codigo deu erro no this[campo]

validar () {
        const campos = ['nm_fabricante']

        campos.forEach(campo => {
            const valor = **this[campo]**

            if (typeof valor !== 'string' || valor.length === 0) {
                throw new Error (`O Campo '${campo}' está inválido `)
            }
        })
    }
1 resposta

Olá Fernando, tudo bem? Espero que sim!

Para corrigir esse erro, você pode usar a notação de acesso entre colchetes ([]) em combinação com this para acessar a propriedade dinamicamente. No entanto, o TypeScript precisa de informações de tipo adequadas para garantir a segurança do tipo durante a compilação.

Aqui está uma possível solução:

validar() {
  const campos: Array<keyof this> = ['nm_fabricante'];

  campos.forEach((campo) => {
    const valor = this[campo];

    if (typeof valor !== 'string' || valor.length === 0) {
      throw new Error(`O Campo '${campo}' está inválido`);
    }
  });
}

Nessa solução, definimos o tipo Array para a variável campos, indicando que ela é uma matriz de chaves das propriedades da classe atual. Isso permitirá que o TypeScript inferira corretamente os tipos das propriedades ao acessá-las usando this[campo].

Certifique-se de ajustar o código conforme necessário, substituindo 'nm_fabricante' pelo nome da propriedade que você deseja validar. Além disso, verifique se você importou as dependências necessárias e se o restante do seu código está correto.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!