Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ESLint无法识别全局属性_Javascript_Node.js_Jestjs - Fatal编程技术网

Javascript ESLint无法识别全局属性

Javascript ESLint无法识别全局属性,javascript,node.js,jestjs,Javascript,Node.js,Jestjs,我正在使用测试我的React应用程序,我需要创建一个新的render函数,因为我在测试的组件周围总是需要一个wrapper。因此,我决定将其保留在全局名称空间中,运行jest时一切正常,但我的IDE(VSCode)无法识别变量,因此我没有Intellisense(这在我看来非常糟糕) setupTests.ts: import "@testing-library/jest-dom"; import "jest-styled-components"; imp

我正在使用测试我的React应用程序,我需要创建一个新的
render
函数,因为我在测试的组件周围总是需要一个
wrapper
。因此,我决定将其保留在
全局
名称空间中,运行
jest
时一切正常,但我的IDE(VSCode)无法识别变量,因此我没有Intellisense(这在我看来非常糟糕)

setupTests.ts

import "@testing-library/jest-dom";
import "jest-styled-components";
import "./utils";
import { render } from "./renderMock";

global.testUtils = {
    render,
};
type RenderResult = import("@testing-library/react").RenderResult;
type RenderOptions = import("@testing-library/react").RenderOptions;
type Render = (
    ui: React.ReactElement,
    renderOptions?: RenderOptions
) => RenderResult;

type TestUtils = {
    render: Render;
};

declare module NodeJS {
    interface Global {
        testUtils: TestUtils;
    }
}

declare const testUtils: TestUtils;
utils.ts

import "@testing-library/jest-dom";
import "jest-styled-components";
import "./utils";
import { render } from "./renderMock";

global.testUtils = {
    render,
};
type RenderResult = import("@testing-library/react").RenderResult;
type RenderOptions = import("@testing-library/react").RenderOptions;
type Render = (
    ui: React.ReactElement,
    renderOptions?: RenderOptions
) => RenderResult;

type TestUtils = {
    render: Render;
};

declare module NodeJS {
    interface Global {
        testUtils: TestUtils;
    }
}

declare const testUtils: TestUtils;
utils.d.ts

import "@testing-library/jest-dom";
import "jest-styled-components";
import "./utils";
import { render } from "./renderMock";

global.testUtils = {
    render,
};
type RenderResult = import("@testing-library/react").RenderResult;
type RenderOptions = import("@testing-library/react").RenderOptions;
type Render = (
    ui: React.ReactElement,
    renderOptions?: RenderOptions
) => RenderResult;

type TestUtils = {
    render: Render;
};

declare module NodeJS {
    interface Global {
        testUtils: TestUtils;
    }
}

declare const testUtils: TestUtils;
.eslintrc.json

{
    "env": {
        "browser": true,
        "es6": true,
        "node": true,
        "jest/globals": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:react/recommended",
        "react-app",
        "prettier",
        "plugin:jest/recommended"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },
        "ecmaVersion": 2021,
        "sourceType": "module"
    },
    "plugins": ["react", "prettier", "@typescript-eslint"],
    "rules": {
        "react/prop-types": "off",
        "react-hooks/rules-of-hooks": "error", // Checks rules of Hooks
        "react-hooks/exhaustive-deps": "warn" // Checks effect dependencies
    }
}
最后是错误(在
component.test.tsx
中):


const{render}=global.testUtils
也投诉?是:
属性“testUtils”在类型“global&typeof globalThis”上不存在。ts(2339)
const{render}=global.testUtils
也投诉?是:
属性“testUtils”在类型“global&typeof globalThis”上不存在。ts(2339)