-
Notifications
You must be signed in to change notification settings - Fork 240
@override
(Available since JSDuck 4.0)
Synopsis:
@override OverriddenClassName
Documents an Ext JS 4 style override. When used in class doc-comment all the members of the class will be moved over to the class identified by OverriddenClassName
as if they were defined inside that class. The class with the @override
tag will not show up in documentation.
One should rarely need to use the @override tag directly as the override:
property inside Ext.define()
is auto-detected.
/** */
Ext.define("My.Element.Override", {
override: "Ext.dom.Element",
/** An additional method for Ext.dom.Element */
blowUp: function() {
}
};
The blowUp
method will be moved over to Ext.dom.Element
and the My.Element.Override
class itself will be discarded from documentation. Though the method will get a small note saying that it originates from an override named My.Element.Override
. If the Ext.dom.Element
already has a blowUp
method, then the documentation from the override will be appended to the docs of that method.
Additionally JSDuck detects the Ext.override
construct:
/** */
Ext.override(Ext.dom.Element, {
/**
* An additional method for Ext.dom.Element
*/
blowUp: function() {
}
});
However, if you're not using Ext.define to create the override, you need to use the @override
tag explicitly. The following code will result in equivalent docs:
/**
* @class My.Element.Override
* @override Ext.dom.Element
*/
Ext.apply(Ext.dom.Element.prototype, {
/**
* An additional method for Ext.dom.Element
*/
blowUp: function() {
// amazing graphics manipulation code here
}
});
The @class
tag is used to give a name for the override. If you don't care about the name, just leave it off and JSDuck will create an anonymous override for you.
Istead of documenting an actual override you could just use an @class
tag - all members will then simply be added to that class:
/**
* @class Ext.dom.Element
*/
Ext.apply(Ext.dom.Element.prototype, {
/**
* An additional method for Ext.dom.Element
*/
blowUp: function() {
// amazing graphics manipulation code here
}
});
But the drawback is that this only works for adding new members to a class. If you override an existing method, JSDuck will complain about duplicate members in class - in that case you need to go back and still use the @override
tag.