TypeScript:“Window & typeof globalThis”上不存在属性“X”:使用“declare global”的建议解决方案给了我错误
Posted
技术标签:
【中文标题】TypeScript:“Window & typeof globalThis”上不存在属性“X”:使用“declare global”的建议解决方案给了我错误【英文标题】:TypeScript: Property 'X' does not exist on 'Window & typeof globalThis': suggested solution using 'declare global' gives me error 【发布时间】:2020-05-19 11:49:00 【问题描述】:编辑:这是一个 ESlint 问题。我在本文末尾包含了我的 ESLint 设置。
我对 TypeScript 还很陌生——我一直在重构别人的 React 代码,当我遇到这一行时,我将其移至 TypeScript 以进行工作项目
const memoryOptionsResponse = window.webchatMethods.getMemory(chatId);
TypeScript 抱怨“window.webchat”,说
“Window & typeof globalThis”上不存在属性“X”
经过一番谷歌搜索,answer 似乎是将其放在模块的根级别
declare global
interface Window
webchatMethods:any;
但是现在 TS 抱怨以下错误。
This Stack Overflow page 提出了类似的建议,但同样有 declare global
和 ESLint 的阻碍。
在尝试解决这个问题半小时后,我决定向您寻求建议——如果有人知道一个好的解决方案,我将不胜感激!
// .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
【问题讨论】:
Eslint 犹豫不决,但 typescript 是否可以编译并且似乎可以识别附加属性? 是的,它可以编译。但我更希望 ESLint 很高兴,这样我就不会出现虚假错误,而且我不知道在该行之前要 ñut 的 eslint disable 命令是什么,以便它停止发出错误信号...... 当然。我问是因为答案(和问题)在于 eslint 而不是打字稿。你能分享一下你的 eslint 设置信息吗? @DonovanHiland,我已将其包含在原始帖子的末尾... 还有 babel 配置? :D 【参考方案1】:看起来缺少的是告诉 babel 如何处理 typescript 的部分。我会查看typescript-eslint。
【讨论】:
以上是关于TypeScript:“Window & typeof globalThis”上不存在属性“X”:使用“declare global”的建议解决方案给了我错误的主要内容,如果未能解决你的问题,请参考以下文章
为什么这会传递给匿名函数:“undefined”!= typeof global? global:“undefined”!= typeof window && window
Visual Studio 调试技巧[Command Window & Immediate Window ](Tips)