这段代码
declare function fn<T, U>(array: T[], predicates: ((arg: T) => U)[]): [T, U];
let a = fn([1, 2, 3], [x => 2, x => 's']);
导致此错误:
无法从用法中推断类型参数“U”的类型参数。考虑明确指定类型参数。类型参数候选“数字”不是有效的类型参数,因为它不是候选“字符串”的超类型。函数 fn(array: T[], 谓词: ((arg: T) => U)[]): [T, U]
为什么不能U
简单地推断出string | number
这里的类型?