我有一个与此相似的对象:
const v = [
{ pointer: "/name",name: "N1" },{ pointer: "/name",name: "N2" },{ pointer: "/zip",name: "Z1" }
] as const
我想生成这样的对象:
const m: M = {
"/name": [{ pointer: "/name",name: "N2" }] // can also contain N1,but not Z1
}
是否可以为此创建类型?我的尝试应该更好地解释我要做什么:
type V = typeof v;
type T = V[number]
type M = {
[K in T["pointer"]]: Array<T extends {pointer: K} ? T : never>;
}
codesandbox:https://codesandbox.io/s/56564