如何在名称中带有点的模块上使用 WebStorm 中的 JSDoc 类型推断? (Discord.js)
How do I use JSDoc type inference in WebStorm on a module with a dot in it's name? (Discord.js)
我正在尝试找到一种方法来使用 WebStorm 的 JSDoc 类型推断以非冲突模式处理 Discord.js TypeScript 注释。
这是 "works"...
import Discord from 'discord.js';
/**
* @param {Client} client
* @param {Collection.<Snowflake, Message>} msgs
*/
function handleRemoveMessages(client, msgs) {}
问题出在客户端,存在多个定义。
虽然这可行,但我希望能够将从 discord.js
模块导入的类型命名为 Discord.Client
而不是 Client
,因为我想使用其他命名的符号这样。
因此,例如... Message
引用了正确的类型;
并且 Discord.Message
似乎 引用了正确的类型(但我不相信它是);
两个 Message
类型引用不兼容,并在提供一个代表另一个时抛出警告。
也无法通过 JSDoc 模块路径引用类型...
我还尝试了 module:discord\.js
、module:'discord\.js'
和双引号,结果都一样。
我知道在 JSDoc 路径名中使用点有点不合规矩,而且 JetBrains 使用的 Closure 编译器可能不是 100% 符合 JSDoc。
这只是 WebStorm 或 Closure 中的错误,还是有办法正确制作此模块类型引用?
根据JSDoc 3 spec, you need to quote the names with 'unusual' chanracters, like module:"discord.js"
. But it doesn't currently work as expected, please follow WEB-34348更新
我正在尝试找到一种方法来使用 WebStorm 的 JSDoc 类型推断以非冲突模式处理 Discord.js TypeScript 注释。
这是 "works"...
import Discord from 'discord.js';
/**
* @param {Client} client
* @param {Collection.<Snowflake, Message>} msgs
*/
function handleRemoveMessages(client, msgs) {}
问题出在客户端,存在多个定义。
discord.js
模块导入的类型命名为 Discord.Client
而不是 Client
,因为我想使用其他命名的符号这样。
因此,例如... Message
引用了正确的类型;
Discord.Message
似乎 引用了正确的类型(但我不相信它是);
Message
类型引用不兼容,并在提供一个代表另一个时抛出警告。
module:discord\.js
、module:'discord\.js'
和双引号,结果都一样。
我知道在 JSDoc 路径名中使用点有点不合规矩,而且 JetBrains 使用的 Closure 编译器可能不是 100% 符合 JSDoc。
这只是 WebStorm 或 Closure 中的错误,还是有办法正确制作此模块类型引用?
根据JSDoc 3 spec, you need to quote the names with 'unusual' chanracters, like module:"discord.js"
. But it doesn't currently work as expected, please follow WEB-34348更新