假设我有以下界面X:
type X = {
red: number,
blue: string
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用映射类型构造联合类型Y?如果不是,是否可以用其他类型的类型级机制来构造它?
type Y = {
kind: "red"
payload: number
} | {
kind: "blue"
payload: string
}
Run Code Online (Sandbox Code Playgroud)
是的,您可以利用 的T[keyof T]值的并集这一事实T,无论T是什么。您可以使用映射类型来构造一个类型,其值是您想要的联合的分支:
type Y = { [K in keyof X]: {kind: K, payload: X[K]} }[keyof X]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |