С JSDoc вы также можете создавать собственные типы, используя @typedef
. Я использую это довольно часто, поэтому props / params, которые являются строками или массивами, ссылаются на описание типа (например, string
я создал typedef, который включает исходные данные, доступные для строки (см. Пример JSDoc ниже). Вы можете определить настраиваемый тип таким же образом. Это потому, что вы не можете использовать точечную нотацию объекта для возврата, как вы можете для @property для обозначения того, что находится в возврате. Поэтому в случаях, когда вы возвращаете что-то вроде объекта, вы можете создать определение для этого типа (' @typedef MyObject
), а затем@returns {myObject} Definition of myObject
.
Я бы не сходил с ума от этого, потому что типы должны быть как можно более буквальными, и вы не хотите загрязнять свои типы, но есть случаи, когда вы хотите определить тип явно, и поэтому вы можете задокументировать, что в нем (хорошим примером является Modernizr ... он возвращает объект, но у вас нет на него документации, поэтому создайте собственный typedef, который подробно описывает, что находится в этом возвращении).
Если вам не нужно идти по этому пути, то, как уже упоминалось, вы можете указать несколько типов для любых @param, @property или @return, используя канал |
.
В вашем случае, вы должны также документировать , @throws
потому что вы бросаете new error
: * @throws {error} Throws a true new error event when the property err is undefined or not available
.