函数参数的协变与逆变为何会影响回调接口的类型安全
简答题困难855 次浏览
参考答案与解析
# 核心结论
协变与逆变描述的是,当内部类型存在继承或兼容关系时,函数、容器等复合类型的兼容方向如何变化。函数返回值通常表现为协变:返回更具体类型的函数,可以用于只要求较宽返回类型的位置。函数参数在严格检查下通常表现为逆变:能够处理更宽输入的回调,才可以安全替代只会接收到较窄输入的回调。这一规则直接关系到事件接口、组件回调和数据转换器的类型安全。
# 底层机制
假设 Dog 是 Animal 的子类型。某位置需要 (value: Dog) => void 时,传入 (value: Animal) => void 是安全的,因为后者能够处理所有 Dog。反过来,某位置需要 `(value: Animal)
