【发布时间】:2018-07-20 08:52:08
【问题描述】:
我有一个带有以下签名的函数
public async sequenceAnimations(animations: AnimationPlayer[] | AnimationTracker[]): Promise<any>
在函数本身中,我想根据它是 AnimationPlayer 数组还是 AnimationTracker 数组进行分支,所以我尝试了这个:
let mappedAnimations = animations;
if (animations instanceof Array<AnimationTracker>) {
mappedAnimations = animations.map(anim => anim.animationPlayer)
}
如您所见,我试图让调用者传递一个 AnimationPlayer 数组或一个包含 animationPlayer 实例的 AnimationTracker 数组。但是在使用类型检查 Array 的 instanceof 时出现错误
“instanceof”表达式的右侧必须是“any”类型或可分配给“Function”接口类型的类型。
此外,自动完成功能没有在 if 块中注册数组的类型,所以我假设我无法像这样检查数组类型。
确定要传递的数组类型的正确方法是什么?
【问题讨论】:
-
你能创建一个包装类 AnimationPlayerList 和 AnimationTrackerList 并针对这些类进行测试吗?
标签: arrays typescript