gpt4 book ai didi

javascript - 闭包编译器 : could not determine the type of this expression at callback

转载 作者:行者123 更新时间:2023-11-30 05:40:26 24 4
gpt4 key购买 nike

当我在参数回调中使用 .apply 时,我收到了 WARNING - could not determine the type of this expression 。让我举例说明。我有这段代码:

/**
* @param {function(... [*])} callback
* @param {string} name
*/
function call(callback, name) {
return callback.apply(null, [name]);
// ^- error here.
}

在我的代码中,我需要在 callback 上设置 .apply param 并获取它返回的内容。但是 Closure Compiler 给我错误。我需要使用 java -jar compiler.jar --js test.js --js_output_file test.min.js --warning_level VERBOSE --jscom_warning reportUnknownTypes 运行它。

请注意,我强制警告所有未知类型,但是 callback 类型是 function(... [*]),并且它有一个 .apply 方法正确(根据您的类型在 CC 内部定义)。如果我运行代码,它可以在浏览器上完美运行。

这可能是 Closure Compiler 的错误吗?

我尝试过的事情

  • @param {*}回调:错误;
  • @param {function(*)} 回调:错误;
  • return/** @type {function(... [*])} */(callback).apply(null, [name]);: 错误;
  • return (/** @type {function(... [*])} */(callback)).apply(null, [name]);: 错误;

最佳答案

根据 Concavel,在 issue #1191从 Closure Compiler issue tracker 到 @param 您需要指定回调返回的回调,例如:

/** @param {function(*): number} callback */

确实解决了问题。

关于javascript - 闭包编译器 : could not determine the type of this expression at callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21079756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com