【问题标题】:JSDoc with TS - show return interface comments in intellisense?带有 TS 的 JSDoc - 在智能感知中显示返回接口注释?
【发布时间】:2021-08-14 04:52:11
【问题描述】:

假设我有一个函数,它的返回值是一个定义的 typescript 接口。界面注释很好:

interface ReturnValue {
  /**
   * Wind value, in knots
   */
  wind: number;
  /**
   * Humidity in %
   */
  humidity: number;
}

/**
 * Function to return some values
 * @returns Returner
 */
const myFunction = (): ReturnValue => {
  return {
    wind: 4,
    humidity: 5
  };
};

我希望在使用智能感知时,或者将鼠标悬停在函数上时,能够看到返回值接口的注释。相反,这就是我得到的:

当我不命名接口而是直接将其声明为函数的返回值时,我会得到一个一点更多细节:

/**
 * Function to return some values
 */
const myFunction = (): {
  /**
   * Wind value, in knots
   */
  wind: number;
  /**
   * Humidity in %
   */
  humidity: number;
} => {
  return {
    wind: 4,
    humidity: 5
  };
};

这给出了:

但即使这样也不是我在定义返回值对象形状时使用的 show cmets。也很乱。

是否可以编写 JSDoc cmets,以便在 typescript 中定义返回值时将它们视为智能感知的一部分?

【问题讨论】:

    标签: typescript visual-studio-code comments intellisense jsdoc


    【解决方案1】:

    遗憾的是,您在这里没有任何控制权。

    Typescript 类型可以变得很深,并且总是将它们完全展开到它们的原子部分对于更复杂的类型来说并不实际。但是,正如您所注意到的,对于简单类型,将它们包装在命名别名中可能有点太快了。一个有很多页面的界面细节需要滚动的工具提示几乎和很少的信息一样无用。

    所以打字稿在简洁方面犯了错误,选择向您显示您已命名的类型,而不是大粒度的接口。

    如果你想知道这样的类型有什么,你可以做一个,输入.,然后探索它的界面:

    当您实际使用 JS doc cmets 时,它们确实会通过它们:

    虽然,我同意有时很难理解类型中的内容,但我不相信有任何方法可以操纵 typescript/vs 代码如何解开并报告类型别名。

    【讨论】:

    • 我认为您的评论“当您实际使用 JS doc cmets 时确实会通过它们”对我来说是灯泡。一旦我调用它们,我仍然可以快速提醒我的变量所在的单位,这主要是我需要的。谢谢!
    猜你喜欢
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多