首页 > 解决方案 > 使用数组解构时保留挂钩类型

问题描述

我正在研究一个简单的钩子来导出动画助手和元素参考,即

import { gsap } from 'gsap';
import { useRef } from 'react';

export function useTween<R extends gsap.TweenTarget>(vars: gsap.TweenVars['pixi']) {
  const tweenRef = useRef<R>(null);
  const tween = gsap.to(tweenRef.current, { pixi: vars });

  return [tween, tweenRef];
}

这里重要的是返回的数组具有类型,但是当我在另一个组件中使用它时,即

const [textTween, textRef] = useTween<Text>({ scale: 2 });

现在textTweentextRef两者都有类型any,我的印象是这些类型会被保留,但是我在这里遗漏了什么吗?

标签: reactjstypescript

解决方案


您忘记指定函数的返回类型:

export function useTween<R extends gsap.TweenTarget>(vars: gsap.TweenVars['pixi']): [gsap.TweenTarget, gsap.TweenTarget] {

推荐阅读