小编Mal*_*ter的帖子

Typescript 键值关系保留 Object.entries 类型

用于打字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)

typescript typescript-generics

18
推荐指数
5
解决办法
1万
查看次数

标签 统计

typescript ×1

typescript-generics ×1