typescript ESLint无法识别`DocumentEventMap`,正在抱怨no-undef

b09cbbtk  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(138)

我有一个简单的类型定义如下,

export type ClickEventProps = {
  handler: (event: MouseEvent) => void;
  additionalEvents?: Array<keyof DocumentEventMap>;
};

ESLint抱怨DocumentEventMap未定义,给出了no-undef。有没有办法在不禁用该行规则的情况下修复它?这是@typescript-eslint中的一个bug吗?
我有@typescript-eslint的当前开发依赖项和版本,

"@typescript-eslint/eslint-plugin": "^5.59.7",
"@typescript-eslint/parser": "^5.59.7",

在.eslintrc.js中,我有以下内容,

module.exports = {
  env: {
    browser: true,
    es2021: true,
  },
  parser: '@typescript-eslint/parser',
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
    ecmaVersion: 'latest',
    sourceType: 'module',
  },
  plugins: ['prettier', 'react', '@typescript-eslint'],
};

tsconfig:

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext", "WebWorker"],
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "module": "esnext",
    "jsx": "react-jsx",
    "types": ["cypress", "node", "cypress-real-events"],
  },
}
jaxagkaj

jaxagkaj1#

每个EventTarget都应该有自己对应的EventMap(即使给定的目标没有特殊的事件类型可用,从而导致空对象)。可以如下检索给定EventTarget的EventMap:

type DocumentEventMap = EventMap<Document>;

相关问题