4

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 がオプションであることが示されています。

見つかった: 文字列 必須: {eventArrayIndex: 数値、eventNameArray: (Array.|null)} mediator.triggerNext("hi there");

どういうわけか、文字列の配列が必要であり(型の配列は表示されていません)、配列はオプションです。

以下は警告を生成しません。

mediator.triggerNext({eventNameArray:null,eventArrayIndex:0});
mediator.triggerNext({eventNameArray:[22,33],eventArrayIndex:0});

eventNameArray を文字列の必須配列として入力する方法を知りたいのですが、これは可能ですか? もしそうなら、どうすればいいですか?

4

2 に答える 2

3

すべてのオブジェクトはnull、デフォルトで次のようになります。

Nullable 演算子で宣言されているかどうかに関係なく、すべてのオブジェクト型はデフォルトで null 可能です。

!null 以外の値である必要があると言うために使用できます。

@typedef ({eventNameArray:!Array.<string>, eventArrayIndex:number})

配列の要素が文字列であるかどうかについては、(まだ)わかりません。

于 2013-03-12T09:36:56.417 に答える