Ответ 1
Из jsdoc.app для аннотации @type
:
Выражение типа может включать путь имени JSDoc к символу (например, myNamespace.MyClass); встроенный тип JavaScript (например, строка); или их комбинация. Вы можете использовать любое выражение типа компилятора Google Closure, а также несколько других форматов, специфичных для JSDoc.
[...]
Каждый тип указывается путем предоставления выражения типа с использованием одного из форматов, описанных ниже. Где это уместно, JSDoc автоматически создает ссылки на документацию для других символов. Например, @type {MyClass} будет ссылаться на документацию MyClass, если этот символ был задокументирован.
Так что вы можете ссылаться на символы. HTMLElement
(и наследующие объекты, такие как HTMLImageElement
) являются символами. Поэтому, если вы следуете спецификации, вам должно быть разрешено делать:
@type {HTMLElement}
чтобы указать, что типом чего-либо является HTMLElement
(то есть узел DOM).
Я предполагаю, почему это явно не задокументировано, потому что объекты узла DOM не являются встроенными в JavaScript (например, String
или Number
). Они добавляются клиентским браузером, поэтому они технически похожи на любой другой символ, который вы и я могли бы создать (будучи реализованным с использованием кода собственного браузера), если говорить о спецификации языка JS.
Хотя мы еще не дошли до стадии фактического составления нашей документации (это отдельная история), которая подтвердила бы, действительно ли вышеизложенное действительно принимается JSDoc, именно так мы интерпретируем и следуем этой конкретной концепции, в которой я работаю, и нашему стандарту. IDE (IntelliJ) принимает это.