如何定义智能感知动态添加的全局变量的类型



我在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类型

相关内容

  • 没有找到相关文章

最新更新