我正在尝试重新定义Array.prototype.indexOf
旧的 IE 版本。根据 Google Closure Compiler,我无法正确输入它。
它说的类型@this
是错误的。
if (!Array.prototype.indexOf) {
/**
* @this {Array}
* @param {*} item
* @param {number=} from: ignored
* @return {number}
*/
Array.prototype.indexOf = function(item, from) {
// ...
}
}
我得到以下输出
test.js:12: WARNING - variable Array.prototype.indexOf redefined with type \
function (this:Array, *, number=): number, original definition at \
externs.zip//es3.js:633 with type function (this:Object, *, number=): number
Array.prototype.indexOf = function(item, from) {
^
令人惊讶的是,改变@this {Array}
(@this {Object}
虽然它没有多大意义)返回了这个更加模糊的信息:
test.js:12: WARNING - variable Array.prototype.indexOf redefined with type \
function (this:Object, *, number=): number, original definition at \
externs.zip//es3.js:633 with type function (this:Object, *, number=): number
Array.prototype.indexOf = function(item, from) {
^
有关如何正确执行此操作的任何提示?