我有一个返回this
的方法。如何记录它,以便即使在子类中也能获得正确的类型?
如果我这样做:
class X {
/** @return X */
method () {
return this
}
}
class Y extends X {
/** @type boolean */
test = true
}
然后在这里
new Y().method().test
method
被描述为X
而不是Y
的实例,因此它没有test
属性。
应该看起来像
class X {
/** @return {this} */ // <------ this
method () {
return this
}
}
class Y extends X {
/** @type boolean */
test = true
}
或
class X {
/** @return X */
method () {
return this
}
}
/** @typedef {function():Y} Y.method */ // <------ this
class Y extends X {
/** @type boolean */
test = true
}
(如果相关,我会使用最新的WebStorm。)