eslint – Error de encadenamiento opcional con vscode

2 minutos de lectura

Avatar de usuario de A. L
A. L.

Veo un subrayado rojo cuando uso una cadena opcional, pero el código funciona bien porque estoy en el nodo 14

Aquí está mi configuración:

node 14.1.0
eslint "^6.8.0"

.eslintrc.js

module.exports = {
    "env": {
        "node": true
    },
    "extends": [
        "eslint:recommended",
    ],
    "parserOptions": {
        "sourceType": "module",
        "ecmaVersion": 2020
    },
    "rules": {
    },
}

ingrese la descripción de la imagen aquí

  • si coloca el cursor sobre el error, ¿qué mensaje de error obtiene?

    – Amigo Cristo

    6 de mayo de 2020 a las 6:47


  • @peprumo Parsing Error: Unexpected token . imagen añadida

    – A. L.

    6 de mayo de 2020 a las 7:01

ya no necesitas @babel/eslint-parser como eslint@^7.5 ahora admite el cambio opcional.

Ejecute lo siguiente para actualizar eslint dentro de su proyecto:

npm

npm install --save-dev eslint@^7.5

hilo

yarn add -D eslint@^7.5

Y luego, asegúrese de que su configuración sea la siguiente:

.eslintrc

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
}

.eslint.js

module.exports = {
    "parserOptions": {
        "ecmaVersion": 2020
    }
}

Ver https://eslint.org/blog/2020/07/eslint-v7.5.0-released#opcional-cadena-soporte para más información.

  • Esta es la respuesta correcta más actualizada a partir de 2020

    – Chris

    25 de noviembre de 2020 a las 21:39

Avatar de usuario de Dan Starns
dan starns

Deberías usar @babel/eslint-parser (anteriormente llamado babel-eslint) con su configuración de eslint. Esto le permite litear TODO el código válido de Babel con eslint. eslint es compatible con todas las funciones de ES2020 a partir de la versión v7.2.0

$ npm install @babel/eslint-parser --save-dev
# or
$ yarn add @babel/eslint-parser -D

Entonces en tu .eslintrc hacer:

{
  parser: "@babel/eslint-parser",
}

  • ¿El encadenamiento opcional no está incluido en el eslint normal?

    – A. L.

    6 de mayo de 2020 a las 8:05

  • @A.Lau no que yo sepa

    – Dan Starns

    6 de mayo de 2020 a las 8:12

  • Desafortunadamente aún no. Hay un borrador sobre la compatibilidad con algunas de las funciones de sintaxis de es2020, el encadenamiento opcional es una de ellas. Puede leerlo aquí: github.com/eslint/eslint/pull/13196

    – Tzahi Leh

    21 de mayo de 2020 a las 8:30


  • ¿A dónde va esa clave del analizador? package.json en “eslintConfig”?

    – bot19

    1 oct 2020 a las 7:00


  • @ bot19 intente ponerlo en la raíz de la configuración de eslintrc aquí está dentro .eslintrc.js

    – Dan Starns

    1 de octubre de 2020 a las 7:02

Avatar de usuario de Zelinskyi Bohdan
Zelinskyi Bohdan

Todas las versiones de Node.js anteriores a la 12 admiten el operador de encadenamiento opcional (una característica de ECMAScript 2020). Intenta usar esto:

"parserOptions": {
    "ecmaVersion": 2020
}

Primero, debe tener un analizador ESLint que admita el encadenamiento opcional:

npm install -D @babel/eslint-parser

Si tiene problemas con las dependencias entre pares, ejecute agregando --legacy-peer-deps al mando.

Luego, debe tener la versión de ESLint que admita el encadenamiento opcional. Este es esa versión de lanzamiento (7.5.0):

npm install eslint@^7.5

Dígale a su servidor ESLint que use el analizador instalado anteriormente:

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
  ...
}

Avatar de usuario de Robin Wieruch
petirrojo

No todas las funciones de JavaScript habilitadas por Babel están incluidas en ESLint.

Puedes usar babel-eslint aunque:

$ npm install @babel/eslint-parser --save-dev
# or
$ yarn add @babel/eslint-parser -D

Entonces en tu .eslintrc hacer:

{
  parser: "@babel/eslint-parser",
}

¿Ha sido útil esta solución?