5

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

const result = thirdPartyLib.doSomething();

现在我可能有一个 ES6 类

class MyClass {
  ...
}

我想将我的注释result为 type MyClass

这可以使用 JSDoc 吗?

4

1 回答 1

8

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

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

添加此标记后显示类型驱动自动完成的 WebStorm 编辑器的屏幕截图

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

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

const result = thirdPartyLib.doSomething();

于 2019-01-16T23:58:56.700 回答