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

JSDoc: assign type to inline variable

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

const result = thirdPartyLib.doSomething();

现在我可能有一个 ES6 class

class MyClass {
  ...
}

我想将我的 result 注释为 MyClass 类型。

这可以使用 JSDoc 吗?

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

/** @type {MyClass} */
const result = thirdPartyLib.doSomething();

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

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

const result = thirdPartyLib.doSomething();