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.
