19

いつ非推奨にするか、いつ削除するかは明らかに開発者次第ですが、JavaScript 関数が非推奨になったことを開発者にどのように警告すればよいのでしょうか?

一部の一般的な言語 ( JavaC#Python ) は、何らかの形で言語レベルの非推奨をサポートしています。

ただし、JavaScript の場合、開発者が関数が非推奨であることを (コードで) 示すことができる標準的な方法を見つけることができません。私にできる最善のことは、(多数の) リリース ノートに従うことです。

例として、jQuery 1.8 の完全なソースを grep すると、最小限のインライン コメントが表示されます。

# 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

W3C と MDN には標準的な方法がないようで、これを処理する方法についての提案もありません。

私が見つけた最高のものは、JSDoc の@deprecatedタグです。

JavaScriptに、私が見落としていた非推奨の注釈があるかどうかを知っている人はいますか? これを行うためのより良い、またはより一般的な方法はありますか?

4

3 に答える 3

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

これが、jQuery Migrate (1.8 -> 1.9 アップグレードの場合) がコードのアップグレードに役立つ方法です。

彼らのウィキから:

開発者が古い jQuery コードを移行するときに互換性の問題を特定して修正できるようにするために、プラグインの開発 (非圧縮) バージョンは、その機能のいずれかが呼び出されるたびにコンソール警告メッセージを生成します。メッセージは、一意のメッセージごとにコンソールに 1 回だけ表示されます。

于 2013-01-16T17:28:02.140 に答える
7

基本的に、メソッド/関数を非推奨にする方法はありません。非推奨のメンバーを処理するのは開発者次第です。

私ができると思う唯一のことは、非推奨の関数/メソッドを文書化するために最善を尽くし@deprecated、ソースコード文書内でタグを使用することです。

次に、一部のコンパイラ(Google Closureコンパイラが間違っていない場合はそれを実行します)と高度なIDEは、このタグを使用してコンパイルされたソースコードを検証し、非推奨の関数が使用された場合に警告を発します。

于 2013-01-16T17:13:46.787 に答える