为了提升代码可读性,也为了让 IDE 更准确识别对象结构,可以考虑把动态添加的属性做成确定性的,比如声明的时候就包含这个字段。
用注释写好 JSDoc 、ESDoc,把具备哪些属性写清楚。
或者使用 TS 的*.d.ts 文件( JS 项目也可以用),和上面方法一样都是让 IDE 知道对象有哪些属性。
如果是公共库的话,可以在 Preferences =》 Languages & Frameworks =》 JavaScript =》 Libraries 里添加相应库的声明文件,实际上和用 TS 的*.d.ts 是等价的。很多人用 idea 一开始写项目连 Node 内置 API 都会有波浪线( WebStorm 可能不会有这个情况),需要在 Preferences =》 Languages & Frameworks =》 Node.js and NPM 里勾选 Coding assistance for Node.js 。