用于打字Object.entries
的打字稿提供具有返回类型[string, T][]
,但是我正在寻找一个泛型类型Entries<O>
来表示这个功能,保持键和值之间的关系的返回值。
例如。当有一个对象类型时
type Obj = {
a: number,
b: string,
c: number
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种类型Entries<O>
,当提供时会产生以下类型之一(或类似的东西)Obj
:
(["a", number] | ["b", string] | ["c", number])[]
[["a", number], ["b", string], ["c", number]]
(["a" | "c", number] | ["b", string])[]
Run Code Online (Sandbox Code Playgroud)
这对于 Object.entries 的所有用例(请参阅此处)并不正确,这对我的特定情况来说是没有问题的。
尝试和失败的解决方案:
type Entries<O> = [keyof O, O[keyof O]][]
不适合这个工作,因为它不仅保留了可能键和值而不是这些作为之间的关系Entries<Obj>
是["a" | "b" | "c", number | string]
。
type Entry<O, K extends keyof O> = [K, O[K]] …
Run Code Online (Sandbox Code Playgroud)