在 PhpStorm 中不使用 TypeScript 时如何忽略打字字段?

How to ignore typings-field when not using TypeScript in PhpStorm?

在 JetBrains PhpStorm 2019.3 中,我使用 JavaScript ES6。 现在,如果我安装例如Foundation for Sites 并在名为 main.js:

的文件中使用以下代码
import {Dropdown, DropdownMenu, Accordion} from 'foundation-sites';

CTRL + 在 'foundation-sites' 上单击 时,PhpStorm 将我发送到:

node_modules/foundation-sites/dist/js/foundation.d.ts

尽管我不使用 TypeScript。预期的行为将跳转到:

node_modules/foundation-sites/dist/js/foundation.es6.js

我可以通过更改基础站点中的 typings 字段来更改此行为 package.json:

-  "typings": "dist/js/foundation.d.ts",
+  "typings": "dist/js/foundation.es6.js",

但是,更改第三方代码中的 package.json 字段只是为了修复 PhpStorm 移动到错误的文件似乎很不方便。如何让 PhpStorm 在不使用 TypeScript 时忽略 TypeScript 引用和字段?

无法告诉 IDE 忽略 typings 字段 - 它使用 TypeScript 定义文件来为其库方法的代码完成提供支持。通常它使用以下规则进行导航:

  • 如果类型定义安装在 node_modules/@types 文件夹中,IDE 会在使用 Ctrl+click 时尝试导航到库的 JavaScript 源。请注意,这仅适用于 .d.ts 文件中定义为 类 的符号、变量或函数(而不是接口或类型)。
  • 如果类型定义在模块内可用,IDEA 默认情况下不会索引 JavaScript 源,因此无法导航到它们。要索引这些文件,您需要从模块文件夹右键菜单中选择 Include Javascript Files

更糟糕的是,尽管 foundation-sites 捆绑了打字,但这些打字不正确(参见 https://github.com/foundation/foundation-sites/issues/11653 和链接的票证),所以 IDEA 不能将 ES6 导入映射到来自 foundation.d.ts.

的接口

我能想到的唯一解决方法是注释掉 package.json 中的 "typings": "dist/js/foundation.d.ts", - IDEA 将使用 foundation.es6.js 中的声明来完成和导航