javascript - 使用 JSDoc3 键入一个使用通用键的不可变对象(immutable对象)在 WebStorm 中没有得到很好的识别

标签 javascript webstorm jsdoc

我需要帮助使用 JSDoc3 键入具有通用键的不可变对象(immutable对象),因为 WebStorm 总是提示。 也许我错了,请告诉我。

基本上,用通用键键入一个对象可以写成如下

/** @typedef {Object<string,number>} myObject */

我的对象是不可变的,所以我创建了更多 JSDoc 来涵盖一些不可变函数:

/**
 * @typedef {Object} ImmutableObject
 * @property {function} set
 * @property {function} setIn 
 */

我的键也在一个枚举中,所以更多的 JSDoc

/**
 * @enum
 */
const SOME_KEYS= {KEY1: 'key1', KEY2:'key2'}

然后我把它们放在一起:

/** @typedef {ImmutableObject<SOME_KEYS,number>} myImmutableObject */

尽管我尽了一切努力,当我使用在对象类型上用 myImmutableObject 声明的不可变函数时,WebStorm 总是提示该函数不存在!

这是 WebStorm 2020 的屏幕截图(2019 年相同):

screenshot made from WebStorm 2020

但是,ImutableObject 类型在“单独”使用时效果很好,这是从 WebStorm 2020 截取的屏幕截图:

screenshot made from WebStorm 2020

最佳答案

目前不支持扩展typedef,请关注WEB-34403和更新的链接票

关于javascript - 使用 JSDoc3 键入一个使用通用键的不可变对象(immutable对象)在 WebStorm 中没有得到很好的识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61084513/

相关文章:

javascript - 如何在事件接收器 Angular 中访问它

javascript - webstorm 中的 sourcemap 支持用于单元测试

javascript - Webstorm - 如何为 javascript 调试配置添加浏览器参数

java - 设置 JAVA_HOME 的 Grunt 任务

typescript - VSCode 仅在导入符号时呈现 JSDoc 链接到另一个文件

javascript - 如何在 JSDoc 中描述解构的对象参数

php - 还有哪些其他基于网络的技术可以执行程序?

javascript - 如何在双引号内使用双引号

javascript - 在 JavaScript 中同时声明变量和函数

javascript - 如何在实时模板中大写变量的一个实例?