gpt4 book ai didi

javascript - Google Compiler 的注解,带有可选参数的@type 函数

转载 作者:行者123 更新时间:2023-11-30 17:31:12 25 4
gpt4 key购买 nike

我已经用谷歌搜索到它的最后一页,但没有找到答案。

我如何在另一个对象的范围内注释一个函数,该对象可以将字符串、字符串数组或根本没有参数作为参数?

我试过这个:

/**
* @type function(this:anObject, (string|Array.<string>)=)
*/
deselect = function(val) {
var temp = val ? ( val instanceof Array ? val : [val]) : [];
// some code
this.doSomething(temp);
}.bind(anObject);

但它不起作用,因为当我在没有参数的情况下调用它时,编译器会返回如下错误:

WARNING - assignment
found : function (?): undefined
required: function (this:anObject, (Array.<string>|null|string)=): ?
deselect = function(val) {

最佳答案

我倾向于讨厌与 Google Closure Compiler 配合使用的类型检查。

回答我自己的问题:

要通过绑定(bind)返回的赋值检查,您必须按如下方式重铸新函数:

/**
* @type function(this:anObject, (string|Array.<string>)=)
*/
deselect = /** @type function(this:anObject, (string|Array.<string>)=) */
(function(val) {
var temp = val ? ( val instanceof Array ? val : [val]) : [];
// some code
this.doSomething(temp);
}.bind(anObject));

如果有人知道如何使它不那么令人毛骨悚然,请在此处发布。

关于javascript - Google Compiler 的注解,带有可选参数的@type 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037475/

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