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

进阶之路 | 奇妙的Window之旅

Visual Studio 调试技巧[Command Window & Immediate Window ](Tips)

flink学习之十一-window&EventTime实例

SDL\OpenGL Window & Widget 库的设计问题

WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox