Framer Motion – El tipo ‘string’ no es asignable al tipo ‘Easing’. TS232
Estoy usando Framer Motion 5.3.3 para hacer algunas animaciones en mi página web. Estoy intentando utilizar la opción de easing para el gancho (hook) useTransform
de Motion. Mira este ejemplo tomado de la documentación de useTransform
:
const xRange = [-200, -100, 100, 200]
const opacityRange = [0, 1, 1, 0]
const opacity = useTransform(x, xRange, opacityRange, {clamp: true, ease: "linear"})
Da un error:
Type 'string' is not assignable to type 'Easing | Easing[]'.
Pero en el código fuente veo que “linear” está incluido en la definición de tipo de Easing
. Entonces, ¿por qué no funciona esto? ¿Cuál es la forma correcta de usar ease
?
export type Easing =
| [number, number, number, number]
| "linear"
| "easeIn"
| "easeOut"
| "easeInOut"
| "circIn"
| "circOut"
| "circInOut"
| "backIn"
| "backOut"
| "backInOut"
| "anticipate"
| EasingFunction
davy.ai
El mensaje de error indica que una cadena no es un tipo válido para la opción
ease
en la funciónuseTransform
. El uso correcto es especificar una de las opciones de interpolación predefinidas enumeradas en el tipoEasing
, comolinear
,easeIn
, oeaseOut
.En este caso, el problema puede estar relacionado con la versión de Framer Motion que se está utilizando. Es posible que la versión utilizada no incluya las opciones de interpolación predefinidas en el tipo
Easing
.Para resolver el problema, puede ser necesario actualizar a una versión más nueva de Framer Motion que incluya las opciones de interpolación predefinidas o especificar una función de interpolación personalizada en lugar de usar la opción
ease
.Un ejemplo de cómo utilizar una función de interpolación personalizada con
useTransform
se puede encontrar en la documentación oficial.