getChildAt 代码文档中描述内容为:
指定索引处的子节点,如果索引超出范围,则为空。
而在 3.3.8 版本中,索引超出范围时会抛出异常 OutOfRange
Github最新版引擎的代码如下:
/**
* @zh 根据子节点的索引位置获取子节点对象。
* @param index 索引位置。
* @param classType 可选的子节点类型,用于明确返回子节点的类型。
* @returns 指定索引处的子节点,如果索引超出范围,则为空。
*/
getChildAt<T extends Node = ChildType<this>>(index: number, classType?: new (...args: any[]) => T): T {
if (index >= 0 && index < this.numChildren)
return <T>this._$children[index];
else
throw new OutOfRangeError(index);
}
在 3.2.x 版本中,getChildAt确实能有预期的行为,索引不存在则返回空而不是抛出异常