首页 > 解决方案 > JS Doc:如何将javascript es6类返回的对象定义为自定义类型?

问题描述

我有一些以下代码:

export class Logger {
   constructor(label = null, options = {}) {
      if (!winston.loggers.has(label)) {
         winston.loggers.add(
            label,
            { /* ...default options */ }
         );
      }

      return winston.loggers.get(label);
   }

   // some other function...
}

在这里,我的类返回一个自定义对象,它是一个 Winston 记录器对象。但是当我在我的其他文件中导入这个类并用它创建一个新对象(const logger = new Logger())时,自动建议只显示类中的函数,即// some other function。现在,由于我的类返回了一个 Winston 记录器实例,我希望能够用 JS 文档记录它,以便我得到我的自动建议。

有没有办法可以使用 JS 文档来实现这一点,以定义已定义的类返回的自定义对象类型?

标签: javascriptjsdocjsdoc3

解决方案


你在使用打字稿编译器吗?如果那么您可以定义一个logger.types.ts类型文件并将其导入 jsdoc 返回注释。

/**
 * Logger Component of the form
 * @returns {import("./logger.types.ts").LoggetProps}
 */

export interface LoggetProps extends winston {
     //example props
     isError: boolean


}

推荐阅读