我正在使用一个简单的挂钩来导出动画助手和元素引用,即
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 });
现在textTween
和textRef
都有any
类型,我以为这些类型会被保留下来,但我在这里遗漏了什么吗?
您忘记指定函数的返回类型:
export function useTween<R extends gsap.TweenTarget>(vars: gsap.TweenVars['pixi']): [gsap.TweenTarget, gsap.TweenTarget] {