我有泛型类型的函数。
但它返回错误Type 'boolean' is not assignable to type 'string'.
function testing<K, V>(array: Array<{ key: K, value: V }>): Array<V> {
return array.map(data => data.value)
}
testing([{ key: 1, value: "one" }, { key: 2, value: true }])
我怎样才能修复这个泛型类型的问题,保持类型的泛型。因为数组是未知的,值可能有不同的自定义类型。
4条答案
按热度按时间e3bfsja21#
TS显然不够聪明,无法推断V是一个联合类型,因此对于像这样复杂的参数,您必须显式地声明它。
lyr7nygr2#
你并不知道
value
的类型,你应该使用unknown
来强制用户输入检查它。我也不明白为什么需要
key
和K
,因为它们被忽略了。c2e8gylq3#
这应该行得通:
pgvzfuti4#
以下代码将提取每个值的
type
并返回并集:typescript Playground的例子!