typescript - Parsningsfel: Uttryck förväntat. eslint


interface Address {
  street: string,
}

export const getAddress = (address: Address | null) : string =>
  address?.street ? `${address?.street}`
    : '0000 Default Dr';

Vet någon om jag får Parsing error: Expression expected. eslint på address i address?.street ? ?

Eslint-regler både för .js och .ts:

 {
      "extends": [
        "plugin:cypress/recommended",
        "plugin:@typescript-eslint/recommended"
      ],
      "overrides":
        {
          "files": ["**/*.{ts,tsx}"],
          "parser": "@typescript-eslint/parser",
          "parserOptions": {
            "project": "./tsconfig.json"
          },
          "plugins": ["@typescript-eslint", "prettier", "react-hooks", "jsx-a11y"],
          "extends": [
            "eslint:recommended",
            "react-app",
            "plugin:@typescript-eslint/recommended",
            "plugin:@typescript-eslint/recommended-requiring-type-checking",
            "prettier"
          ],
          "rules": {
            "@typescript-eslint/explicit-function-return-type": "off",
            "@typescript-eslint/no-explicit-any": "off",
            "@typescript-eslint/no-shadow": "off",
            "no-empty-function": 0,
            "@typescript-eslint/no-empty-function": "off",
            "@typescript-eslint/explicit-module-boundary-types": "off",
            "@typescript-eslint/no-non-null-assertion": "off",
            "no-use-before-define": "off",
            "@typescript-eslint/no-use-before-define": ["error"]
          },
          "settings": {
            "import/parsers": {
              "@typescript-eslint/parser": [".ts", ".tsx"]
            },
            "import/resolver": {
              "typescript": {}
            },
            "react": {
              "version": "detect"
            }
          }
        }
      ]
    }

Svar #1

Det ser ut som att ES-versionen är inställd på standardvärdet. Valfri kedjning (address?.street) är ES2019. Som standard förväntar sig ESLint ECMAScript 5-syntax. Om du vill aktivera ES2019-syntax, lägg till detta i parserOptions: ecmaVersion: '9' (eller '2019') i din eslintrc (länk till dokumentation).

Svar #2

Flera saker kan orsaka detta fel -> länk till artikel

I ditt fall skulle det fungera att deklarera const och variabelexport på olika rader.

Bortsett från vad som nämns i den länkade artikeln, och specifikt för mitt fall, fick jag detta fel när jag kedjade satser utan parenteser och lade till en in-line kommentar i slutet.

Detta var det ursprungliga påstående jag skrev som ger felet:

if (selectedHour < startHour - 1) for (let i = 0; i <= 60; i++) elapsedMinutes.push(i); // disable all minutes

Lösningen var att ta bort kommentaren från slutet och placera den på en separat rad:

// disable all minutes
if (selectedHour < startHour - 1) for (let i = 0; i <= 60; i++) elapsedMinutes.push(i);

Relaterade artiklar