これは、jQuery-1.4.3externsファイルを使用しているときに特に見られます。そのためのjavadocは
/**
* @param {(string|number|function(number,number))=} arg1
* @return {(number|jQueryObject)}
* @nosideeffects
*/
jQueryObject.prototype.width = function(arg1) {};
次のような電話があります。
var w = $(window).width();
$('#whatever').width(w)
クロージャーの文句:警告-jQueryObject.prototype.heightの実際のパラメーター1が、見つかった正式なパラメーターと一致しません:(jQueryObject | null | number)required:(function(number、number):?| number | string | undefined)$('# Xobni')。height($(window).height());
遊んでみると(可能な戻り型を削除して)、問題はwidthへの最初の呼び出しがおそらくjQueryObjectを返す可能性があることであり、それは有効な入力ではないため、Closureはエラーを返します。私はこれを追加してみました:
/**
* @type {number}
*/
var w = $(window).width();
$('#Xobni').width(w);
しかし、Closureは次のように文句を言います。警告-初期化変数が見つかりました:(jQueryObject | null | number)が必要です:number var w = $(window).width();
問題は、widthが引数を取ると、jQueryObjectを返すことです。引数を取らない場合は、数値を返します。だから私は私の呼び出しが大丈夫であることを知っていますが、javadocsはそれを完全に反映していないので、Closureは私に警告しています。javadocsを適切に修正する方法、またはこの結果が数値になることをClosureに伝える方法はありますか。おそらくエラーを抑制できることはわかっていますが、これらに注釈を付ける方法を知りたいと思います。
助けてくれてありがとう!