reactjs - TypeScript: Egenskapen 'X' finns inte på 'Window & typeof globalThis': föreslagen lösning med 'declare global' ger mig fel


Redigera: Detta är ett ESLint-problem. Jag har inkluderat min ESLint-konfiguration i slutet av detta inlägg.

Jag är ganska ny på TypeScript -- jag har refaktoriserat någon annans React-kod och flyttat den till TypeScript för ett arbetsprojekt när jag stötte på den här raden

        const memoryOptionsResponse = window.webchatMethods.getMemory(chatId);

TypeScript klagar på 'window.webchat' och säger

Egenskapen 'X' finns inte på 'Window & typeof globalThis'

Efter lite googling verkar svaret vara att lägga detta på rotnivån av modulen

declare global {
    interface Window {
        webchatMethods:any;
    }
}

Men nu klagar TS med följande felmeddelande.

Denna Stack Overflow-sida föreslår något liknande, men återigen har den declare global och ESLint protesterar.

Efter en halvtimme av att försöka fixa detta har jag beslutat mig för att vända mig till dig för råd - om någon vet en bra lösning skulle jag uppskatta det!

// .eslintconfig
{
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2020,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true,
      "modules": true
    }
  },
  "extends": [
    "eslint:recommended",
    "prettier",
    "plugin:react/recommended"
  ],
  "plugins": [
    "prettier",
    "react",
    "react-hooks"
  ],
  "env": {
    "es6": true,
    "node": true,
    "mocha": true,
    "browser": true
  },
  "rules": {
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn",
    "react/prop-types": 1,
    "react/jsx-uses-react": "error",
    "react/jsx-uses-vars": "error",
    "react/no-unescaped-entities": "warn",
    "react/no-find-dom-node": 0,
        "comma-dangle": ["error", "never"],
    "global-require": 0
  }
}
// .eslintignore
test
node_modules

Svar #1

Det verkar som att det som saknas är delen som berättar för Babel hur man hanterar TypeScript. Jag skulle kolla in typescript-eslint.

Relaterade artiklar