gpt4 book ai didi

javascript - 修改闭包编译器的内置 extern

转载 作者:行者123 更新时间:2023-12-03 08:38:14 25 4
gpt4 key购买 nike

我正在使用谷歌的闭包编译器,在构建时遇到以下错误:

path/to/file.js:...: WARNING - actual parameter 1 of Element.prototype.scrollIntoView does not match formal parameter
found : {behavior: string, block: string}
required: (boolean|undefined)
target.scrollIntoView({'block': 'start', 'behavior': 'smooth'});
^

显然,这里的target是一个Element

好吧,看起来闭包需要一个 bool 值,但 mdn 似乎认为 an object is a perfectly fine argument 。 MDN 引用文献https://drafts.csswg.org/cssom-view/#dom-element-scrollintoview因为它的定义是一致的(并且平滑滚动实际上在 Firefox 中有效)。

看起来 Closure 在 w3c_css.js 中定义了 extern其中引用http://www.w3.org/TR/cssom-view/#dom-element-scrollintoview在评论中。然而,看起来他们甚至没有正确的定义,因为 w3.org 签名中有 2 个(可选)参数,而闭包似乎只允许传递 1 个。

平滑滚动是一个很好的功能(并且我可能会在某个时候用更好的跨浏览器解决方案替换这段代码),但与此同时,如何消除该警告?

最佳答案

永久答案

向 github 项目提交拉取请求并为大家修复:https://github.com/google/closure-compiler/blob/master/externs/browser/w3c_css.js#L2125 - 如果您不愿意这样做,我会为您做。

临时答案

定义您自己的外部覆盖签名:

/** @externs */

/**
* @suppress {duplicate}
* @param {(boolean|{behavior: string, block: string})=} opt_top
* @see http://www.w3.org/TR/cssom-view/#dom-element-scrollintoview
*/
Element.prototype.scrollIntoView = function(opt_top) {};

关于javascript - 修改闭包编译器的内置 extern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131516/

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