javascript库应该使用已弃用的注释吗?

haf*_*huk 16 javascript deprecated

显然,由开发人员决定何时弃用以及何时删除,但我想知道如何警告开发人员javascript函数已被弃用?

一些流行的语言(Java,C#,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's undocumented/deprecated and will be removed.
// Deprecated
// Limit scope pollution from any deprecated API
// Deprecated, use jQuery.browser.webkit instead
Run Code Online (Sandbox Code Playgroud)

W3C和MDN似乎没有标准方法或提供有关如何处理此问题的建议.

我发现的最好的是JSDoc的@deprecated标签.

有谁知道javascript 是否有我忽略的弃用注释?是否有更好或更常见的方法来做到这一点?

Flo*_*ine 10

console.log('This function is deprecated.');
Run Code Online (Sandbox Code Playgroud)

这就是jQuery Migrate(用于1.8 - > 1.9升级)帮助人们升级代码的方式.

来自他们的维基:

为了允许开发人员在迁移旧的jQuery代码时识别并修复兼容性问题,插件的开发(未压缩)版本会在调用其任何功能时生成控制台警告消息.对于每个唯一消息,消息仅在控制台上显示一次.

  • 用`console.warn('deprecated')` 可能会更好吗? (2认同)

Rag*_*kkr 7

基本上没有办法弃用方法/函数.由开发人员处理已弃用的成员.

我想可能做的唯一事情是尽最大努力记录已弃用的函数/方法,并@deprecated在源代码文档中使用标记.

然后,一些编译器(谷歌闭包编译器,如果我没有错)和高级IDE,可以使用此标记来验证编译的源代码并在使用某些弃用函数时触发警告.