JSDoc:将类型分配给内联变量

Ale*_*ler 6 javascript jsdoc webstorm

我可以将类型分配给object从第三方库获取结果的变量吗?

const result = thirdPartyLib.doSomething();
Run Code Online (Sandbox Code Playgroud)

现在我可能有一个 ES6 类

class MyClass {
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想将 my 注释result为 type MyClass

这可以使用 JSDoc 吗?

小智 8

JSDoc@type {…}标记可以应用于局部变量以声明其类型。

/** @type {MyClass} */
const result = thirdPartyLib.doSomething();
Run Code Online (Sandbox Code Playgroud)

添加此标签后显示类型驱动的自动补全的 WebStorm 编辑器的屏幕截图

但是,您可以使用@external标记将 JSDoc 类型添加到,而不是在调用函数的任何地方添加此声明thirdPartyLib.doSomething(),从而允许正确推断局部变量类型。

/**
 * @external thirdPartyLib
 */
/**
 * @function external:thirdPartyLib.doSomething
 * @returns {MyClass}
 */

const result = thirdPartyLib.doSomething();
Run Code Online (Sandbox Code Playgroud)