typescript 如何在vscode中使用jsdoc继承重写方法的类型信息

vwoqyblh  于 2022-12-01  发布在  TypeScript
关注(0)|答案(1)|浏览(215)

我使用的是javascript和jsdoc类型提示以及vscode类型脚本类型检查。
当为父方法添加jsdoc类型信息时,我希望子类中的覆盖继承参数/返回类型。
我有这样的课程:

class Parent {
  /**
   * @param {string} a ...
   * @param {number} b ...
   */
  method(a, b) {
    // ...
  }
}

class Child extends Parent {
  /** @inheritdocs */
  method(a, b) {
    super(a, b);
    // ... do extra stuff ...
  }
}

我想让Child#method自动从Parent#method获取类型。我试过@inheritdocs,但它似乎没有这样做。这是任何标记的方法吗?

nqwrtyyt

nqwrtyyt1#

您可以执行以下操作:

class Parent {
  /**
   * @param {string} a ...
   * @param {number} b ...
   */
  method(a, b) {
    // ...
  }
}

class Child extends Parent {
  /** @type {Parent['method']} */
  method(a, b) {
    super.method(a, b);
    // ... do extra stuff ...
  }
}

这将帮助VScode推断类型:

请注意,它只适用于typescript js-docs。
顺便说一句,webstorm设法自己识别类型,没有我的任何帮助...
虽然我真的很喜欢VScode,但我想说在这种情况下-
网络风暴:1 VS代码:0

相关问题