Angular动画回调报错:类型'AnimationEvent_2'不可分配给'AnimationEvent'参数
报错根本原因
你代码中声明的AnimationEvent类型是浏览器原生Web API的全局类型,对应CSS原生动画触发的DOM事件,和Angular动画体系的回调事件不是同一类型:
- Angular动画的
start、done回调返回的是@angular/animations包内部封装的专属事件类型,内置fromState、toState、totalTime等Angular动画特有的属性 - 两个类型的字段结构完全不兼容,所以TypeScript会抛出类型不匹配的错误,报错信息中的
AnimationEvent_2就是Angular动画事件类型的内部别名。
修复方案
只需要从@angular/animations包中导入Angular专属的AnimationEvent类型覆盖全局类型即可,无需修改其他逻辑:
// 原导入语句新增AnimationEvent导入 import { animate, state, style, transition, trigger, AnimationEvent } from "@angular/animations";
导入后你的onAnimationEvent方法的参数类型就会匹配Angular动画回调的返回类型,报错会直接消失,不需要用any类型做临时规避。
内容的提问来源于stack exchange,提问作者Yurii Hierts
相关产品推荐
相关产品推荐

