繁体   English   中英

JSDoc class 字段类型覆盖

[英]JSDoc class fields type override

使用 JavaScript 最新的 class 语法,我有一个 class A ,它有一个公共字段是一个区域 object:

class Area {
   /** @type {number} */
   left;
   /** @type {number} */
   top;
   /** @type {number} */
   width;
   /** @type {number} */
   height;
}

class A {
   /** @type {Area} */
   area;
}

现在,我有一个 class Square扩展 class Area ,另一个 class B扩展A 如何在 JSDoc 中使用 state 将B.area的类型重新定义为Square object,而无需重新声明?

class Square extends Area {
}

class B extends A {
   /** @type {Square} */
   area;  // <-- I want to remove this line of declaration, but to keep the new typing notation.
}

@template@extends是可能的。 这将是结果:

class Area {
  /** @type {number} */
  left;
  /** @type {number} */
  top;
  /** @type {number} */
  width;
  /** @type {number} */
  height;
}

/**
 * @template {Area} T
 */
class A {
  /** @type {T} */
  area;
}

class Square extends Area {
}

/**
 * @extends {A<Square>}
 */
class B extends A {
}

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM