繁体   English   中英

Typescript 条件类型不能用于索引类型

[英]Typescript conditional types can't be used to index type

假设我想编写一个像Merge这样的实用程序类型

type Merge<A, B> = {
  [P in (keyof A | keyof B)]: P extends keyof A ? A[P] : B[P]  
}

但是,上面的代码会得到

类型“P”不能用于索引类型“B”。

虽然我可以这样写

type Merge<A, B> = {
  [P in (keyof A | keyof B)]: P extends keyof A ? A[P] : P extends keyof B ? B[P] : never
}

但是是不是太啰嗦了?

我已经限制了P P in (keyof A | keyof B)中 P 的类型,那么为什么仍然需要P extends keyof B呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM