'Using an imported type in JSDoc @typedef
I'm trying to reduce duplication in specifying my imported types as follows but I'm getting an error
/**
@typedef {import("../types/util")} util
@typedef {util.mapBehaviors} mapBehaviors
... lots of other typedefs based on util
*/
'util' only refers to a type, but is being used as a namespace here.
It's weird because expanding the import explicitly works:
/**
@typedef {import("../types/util").mapBehaviors} mapBehaviors
... lots of other typedefs
*/
How can I use @typedef with an alias of an import?
Solution 1:[1]
This can happen if you are only exporting interface or type from your .d.ts file and not function or const.
This will work:
/**
@typedef {import("../types/types").util} util
@typedef {util["mapBehaviors"]} mapBehaviors
...
*/
but only if in util.d.ts you have
export function mapBehaviors(tags: string[] | Behavior[], table: Behaviors): Behavior[]
...
instead of
export interface mapBehaviors {
(tags: string[] | Behavior[], table: Behaviors): Behavior[]
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Daniel X Moore |
