Должны ли библиотеки javascript использовать устаревшую аннотацию?

Очевидно, что разработчикам нужно подумать о том, когда отказаться и когда удалять, но мне интересно, как предупредить разработчиков о том, что функция javascript устарела?

Большинство языков (Java, С#, Python) поддерживает устаревшую оценку уровня языка в той или иной форме.

Однако для Javascript я не могу найти стандартного способа, которым разработчики могут указать, что функция устарела (в коде). Лучшее, что я могу сделать, это следовать (большому числу) заметок о выпуске.

В качестве примера, grepping полного источника jQuery 1.8 показывает минимальные встроенные комментарии:

# curl http://code.jquery.com/jquery-1.8.0.js | grep -i depre
// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode
// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
// Some plugins are using, but it undocumented/deprecated and will be removed.
// Deprecated
// Limit scope pollution from any deprecated API
// Deprecated, use jQuery.browser.webkit instead

W3C и MDN, похоже, не имеют стандартного способа или предоставляют предложения о том, как с этим справиться.

Лучшее, что я нашел, это JSDoc @deprecated.

Кто-нибудь знает, есть ли у javascript аннотацию для устаревания, которую я забыл? Есть ли лучшие или более распространенные способы сделать это?

Ответы

Ответ 1

console.log('This function is deprecated.');

Так jQuery Migrate (для версии 1.8 → 1.9) помогает людям обновлять свой код.

Из wiki:

Чтобы разработчики могли выявлять и устранять проблемы совместимости при переносе старого кода jQuery, версия (плагинов) разработки (несжатой) генерирует предупреждающие сообщения консоли, когда вызывается любая из ее функций. Сообщения появляются только один раз на консоли для каждого уникального сообщения.

Ответ 2

В принципе, нет способа обесценить метод/функцию. Это до разработчика обрабатывает устаревших членов.

Единственное, что, я думаю, можно сделать, это сделать все возможное, чтобы документировать эти устаревшие функции/методы и использовать @deprecated в документации исходного кода.

Затем некоторый компилятор (компилятор Google Closure делает это, если я не ошибаюсь) и расширенная среда IDE, может использовать этот тег для проверки скомпилированного исходного кода и запускает предупреждения, если используется некоторая устаревшая функция.