gpt4 book ai didi

javascript - 为 Closure Compiler 问题注释 JavaScript

转载 作者:行者123 更新时间:2023-12-03 16:50:14 26 4
gpt4 key购买 nike

我在 externs 文件中有以下 typedef:

/** @typedef ({eventNameArray: Array.<string>,eventArrayIndex: number}) */
var triggerNextData;

希望将其用作 triggerNext 函数的传递参数(将触发下一个事件)。 eventNameArray(字符串数组)和 eventArrayIndex 都是必需的。

这是期望该类型的 triggerNext 函数:
/** 
* @type {function(triggerNextData)}
*/
triggerNext: function(data){
...
}

当我这样称呼它时:
mediator.triggerNext("hi there");

我按预期收到警告,但警告说 eventNameArray 是可选的:

found : string required: {eventArrayIndex: number, eventNameArray: (Array.|null)} mediator.triggerNext("hi there");



不知何故,它不接受它需要一个字符串数组(未显示类型数组)并且该数组是可选的。

以下不会产生任何警告:
mediator.triggerNext({eventNameArray:null,eventArrayIndex:0});
mediator.triggerNext({eventNameArray:[22,33],eventArrayIndex:0});

我想知道如何将 eventNameArray 键入为强制字符串数组,可以这样做吗?如果是这样,我将如何做到这一点?

最佳答案

All objects can be null by default :

All object types are nullable by default whether or not they are declared with the Nullable operator.



您可以使用 !说它应该是一个非空值:
@typedef ({eventNameArray:!Array.<string>, eventArrayIndex:number})

至于数组的元素是字符串,我不知道(还)。

关于javascript - 为 Closure Compiler 问题注释 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353159/

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