TypeScript/React:RefObject<HTMLElement> 数据类型指的是什么?

TypeScript/React: what does the RefObject<HTMLElement> datatype refer to?

我对 React 和 TypeScript 还很陌生,需要为一些前端代码编写测试用例。 在我要测试的组件的 DTO 中,有一个以“RefObject”作为数据类型定义的道具属性。我唯一能找到的是它可能与 useRef 挂钩有关,但我无法进一步了解。为了测试组件,我需要为道具定义一些样本数据,当我真的不知道应该在其中传递什么样的数据时,这有点困难。如果有解释和要传递的数据示例,我将不胜感激,因为有更多组件需要测试以实现此数据类型

正如您已经假设的那样,RefObject<T>useRef<T>() 的 return 类型。类型定义如下:

interface RefObject<T> {
  readonly current: T;
}

您尝试测试的组件很可能会将此 属性 的 current 属性 设置为 HTMLElement,如给定的泛型所示。这意味着为了模拟道具,您只需传递以下内容:

myProp={{ current: null } as RefObject<HTMLElement>}

您可能需要额外强制转换为 unknown 或将 RefObject<HTMLElement> 替换为 RefObject<HTMLElement | null> 以防 TypeScript 在这样做时抱怨。