我在forEach循环中定义了四个全局变量,使用类似于下面的行:
global[name] = buffer
buffer是来自node.js的类型
,目前有一种非常难看的方法来获得我的智能感知,在循环后加上这个:
// next line only so intellisense works, ALWAYS comment out before running
const btMapProvinces = Buffer.alloc(1), btMapTerrain = Buffer.alloc(1), btMapRivers = Buffer.alloc(1), btMapHeightmap = Buffer.alloc(1);
现在,当我了解了如何使用JSDoc在模块中获得参数的智能感知时,我确信我可以使用它来为我的变量获得智能感知,但是在阅读了整个文档之后,我似乎无法让它工作。
我当前的尝试是这样的:
/**
* @var {Buffer} btMapProvinces
* @var {Buffer} btMapTerrain
* @var {Buffer} btMapRivers
* @var {Buffer} btMapHeightmap
*/
但是它根本不起作用,无论它是在global[name] = buffer
行之前,在脚本的开头,还是在forEach之后…
我以前也试过这样使用@name
:
/**
* @name btMapProvinces
* @type {Buffer}
* @name btMapTerrain
* @type {Buffer}
* @name btMapRivers
* @type {Buffer}
* @name btMapHeightmap
* @type {Buffer}
*/
虽然这并没有很好地工作
我花了最后两个小时浏览了其他的问题,其中这些是我觉得最有趣的:
- 这是一个非常类似的情况,我认为,除了我不使用Typescript: JSDoc:如何指定一个隐式全局变量的JS代码片段的类型?
- 这就是为什么我尝试
@var
:指定类型的全局声明在另一个文件 - 我觉得这个可以潜在地回答我的问题,但我不明白答案:如何用JSDOC记录全局变量的类型
为什么你的字体需要是动态的?您当前的尝试
/**
* @var {Buffer} btMapProvinces
* @var {Buffer} btMapTerrain
* @var {Buffer} btMapRivers
* @var {Buffer} btMapHeightmap
*/
表明您非常清楚希望在全局对象上拥有哪些对象。所以你可以像下面这样扩展global
类型