【发布时间】:2013-09-04 01:26:16
【问题描述】:
我正在尝试为旧的 IE 版本重新定义 Array.prototype.indexOf。根据 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) {
^
关于如何正确执行的任何提示?
【问题讨论】:
标签: javascript google-closure-compiler google-closure