The @typedef tag is useful for documenting custom types, particularly if you wish to refer to them
repeatedly. These types can then be used within other tags expecting a type, such as
@type or @param.
Use the @callback tag to document the type of callback functions.
This example defines a union type for parameters that can contain either numbers or strings that
This example defines a more complex type, an object with several properties, and sets its
namepath so it will be displayed along with the class that uses the type. Because the type
definition is not actually exposed by the class, it is customary to document the type definition as
an inner member.