1
確定這個表達式的類型我收到WARNING - could not determine the type of this expression
當我設置了一個param回調使用.apply
。讓我舉例說明。我有這樣的代碼:Closure編譯器:不能在回調
/**
* @param {function(... [*])} callback
* @param {string} name
*/
function call(callback, name) {
return callback.apply(null, [name]);
// ^- error here.
}
在我的代碼,我需要.apply
在callback
集上PARAM和得到什麼回報。但Closure編譯器給我錯誤。我需要java -jar compiler.jar --js test.js --js_output_file test.min.js --warning_level VERBOSE --jscom_warning reportUnknownTypes
運行它。
注意,我強迫警告所有不明類型,但callback
類型是function(... [*])
,並正確有一個.apply
方法(在CC內部定義的,因爲你的類型)。如果我運行代碼,它可以在瀏覽器上完美運行
它可以是一個封閉的編譯器錯誤,也許?
的事情,我想
@param {*} callback
:錯誤;@param {function(*)} callback
:誤差;return /** @type {function(... [*])} */ (callback).apply(null, [name]);
:error;return (/** @type {function(... [*])} */ (callback)).apply(null, [name]);
:錯誤;