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 represent numbers.
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.