[英]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.