如何从Map<unknown,unknown>泛型中提取键与值的类型?
解决方案
你可以通过TypeScript的**条件类型推断(infer)**从泛型M中提取Map对应的键和值类型,不需要单独声明K、V泛型参数:
export function fpMapSet<M extends Map<unknown, unknown>>( key: M extends Map<infer K, unknown> ? K : never, value: M extends Map<unknown, infer V> ? V : never ) { // 函数逻辑实现 }
或者更简洁的写法,直接在泛型约束中完成推断:
export function fpMapSet<M extends Map<infer K, infer V>>( key: K, value: V ) { // 函数逻辑实现 }
这种写法会自动从传入的Map实例中推导K和V的具体类型,完全符合你想要的从M的泛型参数中提取对应类型的需求,而不是单独定义K、V。
内容的提问来源于stack exchange,提问作者mpen
相关产品推荐
相关产品推荐

