es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué ESLint no reconoce mis funciones de flecha de clase?

Seguí el consejo en https://stackoverflow.com/questions/34244888/how-do-i-configure-eslint-to-allow-fat-arrow-class-methods, que indica configurar el analizador en babel-eslint.

Lo instalé y actualicé mi archivo de configuración de la siguiente manera:

{
  "parserOptions": {
    "parser": "babel-eslint",
    "ecmaVersion": 12,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "rules": {
    "semi": "error",
    "indent": ["error", 2],
    "eqeqeq": ["error", "always"],
    "max-depth": ["error", 5],
    "space-before-function-paren": ["error", "never"],
    "template-curly-spacing": ["error", "always"],
    "quotes": ["error", "single", { "allowTemplateLiterals": true }],
    "curly": "error",
    "brace-style": ["error", "1tbs"],
    "space-before-blocks": "error"
  }
}

Sin embargo, todavía se está rompiendo ESLint y está dando un error de análisis de la siguiente manera:

class Person {
  constructor() {
    console.log(this);
    this.hello1();
    this.hello2();
  }

  // breaks eslint, but WHY?

  hello1 = () => {
    console.log(this);
  }

  hello2() {
    console.log(this);
  }
}

const P1 = new Person();

Está resaltando el primer = y diciendo:

Error de análisis
Token no esperado =

¿Cómo puedo solucionar este problema? ESLint está aplicando correctamente todas las reglas en este archivo, pero parece ignorar las opciones del analizador.

¿O algo más?

No estoy seguro si esto es relevante aquí:

https://github.com/babel/babel-eslint#note-babel-eslint-is-now-babeleslint-parser-and-has-moved-into-the-babel-monorepo

pero realmente no sé qué significa.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que la configuración para ESLint está correcta y la opción del analizador está establecida en babel-eslint, pero aún está dando un error de análisis para el método de clase con flecha grasa. Esto podría ser debido a algunas razones:

    1. Asegúrese de que babel-eslint esté instalado como una dependencia del proyecto. A veces, puede estar instalado de forma global o en una ubicación diferente, lo cual podría causar problemas.
    2. Verifique la versión de babel-eslint que se está utilizando. Es posible que se haya instalado una versión diferente o que la versión utilizada no sea compatible con la versión de ESLint que se está utilizando.
    3. Verifique la versión de ESLint que se está utilizando. Es posible que la versión de ESLint que se está utilizando no admita la sintaxis que se está utilizando en el código.
    4. Intente ejecutar ESLint con la bandera --debug para obtener información más detallada sobre qué está saliendo mal.
    5. Asegúrese de que los complementos correctos estén instalados para que ESLint funcione con Babel y la sintaxis de los campos de clase, como eslint-plugin-babel.

    En cuanto a la nota en la documentación de babel-eslint sobre la migración al Babel monorepo, no debería afectar la configuración ni la funcionalidad de ESLint con babel-eslint. Sin embargo, esto significa que el nombre del paquete ha cambiado de babel-eslint a @babel/eslint-parser en versiones más nuevas.

Comments are closed.