JSDoc文档最终方法
JSDoc document final method
有没有办法使用 JSDoc 在 JS 中记录 final 方法。
Java 中的最后一个方法是无法覆盖的方法。
我在 JSDoc 网站上找不到任何选项。
看来你不能,因为 a search of the JSDoc documentaton for final
没有结果。
这并不奇怪,因为您无法可靠地拥有 JavaScript 中的最终方法。因此,如果一个方法不被覆盖很重要,您可能不得不求助于在其描述中记录这一点。尽管如此,JSDoc 还是有可能提供一种方法来注释工具,但它似乎没有。
这里有一个 不可靠的 方法在 JavaScript 中有一个 final 方法:
class Base {
constructor() {
if (this.finalMethod !== Base.prototype.finalMethod) {
throw new Error(`You must not override 'finalMethod' in your subclass.`);
}
}
finalMethod() {
console.log("This is the pseudo-final method");
}
}
class Derived extends Base {
finalMethod() {
console.log("This is the overridden method");
}
}
const d = new Derived(); // Throws error
但这可以通过多种方式轻松克服:
- 等到你的子类构造函数已经调用超类构造函数时再创建方法。
- Return 未使用超类构造函数创建的对象(例如,
return Object.assign(Object.create(this), { finalMethod() { /*...*/ } });
(尽管现在我想起来了,这实际上只是执行上面#1 的不同方法。)
- Return 一个代理。
- 在不调用超类构造函数的情况下创建子类实例(不 推荐——但是,none 其中是)
- ...可能还有其他人...
有没有办法使用 JSDoc 在 JS 中记录 final 方法。
Java 中的最后一个方法是无法覆盖的方法。
我在 JSDoc 网站上找不到任何选项。
看来你不能,因为 a search of the JSDoc documentaton for final
没有结果。
这并不奇怪,因为您无法可靠地拥有 JavaScript 中的最终方法。因此,如果一个方法不被覆盖很重要,您可能不得不求助于在其描述中记录这一点。尽管如此,JSDoc 还是有可能提供一种方法来注释工具,但它似乎没有。
这里有一个 不可靠的 方法在 JavaScript 中有一个 final 方法:
class Base {
constructor() {
if (this.finalMethod !== Base.prototype.finalMethod) {
throw new Error(`You must not override 'finalMethod' in your subclass.`);
}
}
finalMethod() {
console.log("This is the pseudo-final method");
}
}
class Derived extends Base {
finalMethod() {
console.log("This is the overridden method");
}
}
const d = new Derived(); // Throws error
但这可以通过多种方式轻松克服:
- 等到你的子类构造函数已经调用超类构造函数时再创建方法。
- Return 未使用超类构造函数创建的对象(例如,
return Object.assign(Object.create(this), { finalMethod() { /*...*/ } });
(尽管现在我想起来了,这实际上只是执行上面#1 的不同方法。) - Return 一个代理。
- 在不调用超类构造函数的情况下创建子类实例(不 推荐——但是,none 其中是)
- ...可能还有其他人...