相关疑难解决方法(0)

如何在TypeScript中的`window`上显式设置新属性?

我通过显式设置属性来为我的对象设置全局命名空间window.

window.MyNamespace = window.MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)

TypeScript强调MyNamespace并抱怨:

属性'MyNamespace'在'window'类型的值上不存在任何"

我可以通过声明MyNamespace为环境变量并删除window显式来使代码工作,但我不想这样做.

declare var MyNamespace: any;

MyNamespace = MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)

我怎样才能window留在那里让TypeScript开心?

作为旁注,我发现TypeScript抱怨特别有趣,因为它告诉我这种window类型any绝对可以包含任何东西.

typescript

502
推荐指数
25
解决办法
27万
查看次数

如何在 Electron 中正确使用 preload.js

我正在尝试fs在我的renderer流程中使用 Node 模块(在本例中为),如下所示:

// main_window.js
const fs = require('fs')

function action() {
    console.log(fs)
}
Run Code Online (Sandbox Code Playgroud)

注意:action当我按下main_window.

但这给出了一个错误:

Uncaught ReferenceError: require is not defined
    at main_window.js:1
Run Code Online (Sandbox Code Playgroud)

我可以解决这个问题,正如这个接受的答案所建议的那样,通过main.js在初始化时将这些行添加到我的main_window

// main.js
main_window = new BrowserWindow({
    width: 650,
    height: 550,
    webPreferences: {
        nodeIntegration: true
    }
})
Run Code Online (Sandbox Code Playgroud)

但是,根据 docs,这不是最好的做法,我应该创建一个preload.js文件并在那里加载这些 Node 模块,然后在我的所有renderer进程中使用它。像这样:

main.js

main_window = new BrowserWindow({
    width: 650,
    height: 550,
    webPreferences: {
        preload: path.join(app.getAppPath(), 'preload.js') …
Run Code Online (Sandbox Code Playgroud)

javascript node.js electron

66
推荐指数
3
解决办法
4万
查看次数

TypeScript:“Window & typeof globalThis”上不存在属性“X”:使用“declare global”的建议解决方案给了我错误

编辑:这是一个 ESlint 问题。我在这篇文章的末尾包含了我的 ESLint 设置。

我对 TypeScript 还很陌生——我一直在重构别人的 React 代码,当我遇到这一行时,将其移至 TypeScript 以用于工作项目

        const memoryOptionsResponse = window.webchatMethods.getMemory(chatId);
Run Code Online (Sandbox Code Playgroud)

TypeScript 抱怨“window.webchat”,说

“Window & typeof globalThis”上不存在属性“X”

经过一番谷歌搜索后,答案似乎是将其放在模块的根级别

declare global {
    interface Window {
        webchatMethods:any;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是现在 TS 抱怨以下错误。

这个 Stack Overflow 页面建议了一些类似的东西,但它再次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": …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

7
推荐指数
1
解决办法
3344
查看次数

标签 统计

typescript ×2

electron ×1

javascript ×1

node.js ×1

reactjs ×1