За допомогою JSDoc ви також можете створювати власні типи за допомогою @typedef
. Я використовую це зовсім небагато, тому реквізити / параметри, які є рядками або масивами, посилаються на опис типу (наприклад, для 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
.