0

I am defining four global variables from a forEach loop using a line similar to this:

global[name] = buffer

with buffer being the type from node.js

and currently have the very ugly way to get my intellisense for it by having this after the loop:

// 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);

Now as i learned about how to use JSDoc to get Intellisense for arguments in modules i was sure i could use that to get Intellisense for my variables instead, but after reading through the whole documentation i can't seem to get it working.

My current attempt looks like this:

/**
 * @var {Buffer} btMapProvinces
 * @var {Buffer} btMapTerrain
 * @var {Buffer} btMapRivers
 * @var {Buffer} btMapHeightmap
 */

but it just doesn't work at all, no matter if it is right before the global[name] = buffer line, at the beginning of the script, or after the forEach...

I previously also tried using @name like this:

/**
 * @name btMapProvinces
 * @type {Buffer}
 * @name btMapTerrain
 * @type {Buffer}
 * @name btMapRivers
 * @type {Buffer}
 * @name btMapHeightmap
 * @type {Buffer}
 */

though this did not work aswell

The last two hours i spent looking through other asks, of which these are the ones i found the most interesting:

1 Answers1

0

Whats the reason your type needs to be dynamic? Your curent attempt

/**
 * @var {Buffer} btMapProvinces
 * @var {Buffer} btMapTerrain
 * @var {Buffer} btMapRivers
 * @var {Buffer} btMapHeightmap
 */

suggests that you know very well which Objects you want to have on the global object. So you could just extend the global Type like in this answer

Laurenz Honauer
  • 254
  • 1
  • 12
  • Would that work in Javascript? Isn't that (or at least the way it is done in the answer) something exclusive to Typescript? Also the type is always buffer for these, but other properties are String[] for example, as they're a text file, unlike the map files. The type is not dynamic though, if that's what you mean, the globals will always have only one specific type per name. – schockocraft Apr 29 '22 at 12:15
  • Oh, im sorry. I overlooked that you are entirely using JavaScript. My answer is depending on TypeScript – Laurenz Honauer Apr 29 '22 at 12:30