相关疑难解决方法(0)

推断 TypeScript 中 Object.fromEntries() 结果的形状

我正在尝试编写一个更好的定义来Object.fromEntries()推断结果对象的实际键和值。我有我认为可行的方法,但显然infer U其范围是我的方法无法找到的U

interface ObjectConstructor {
  fromEntries<
    K extends PropertyKey,
    V,
    A extends ReadonlyArray<readonly [K, V]> = ReadonlyArray<readonly [K, V]>
  >(array: A): {
    [key in A[number][0]]: A[number extends infer U ? U : never][0] extends key ? A[U][1] : never;
  };
}
Run Code Online (Sandbox Code Playgroud)

U无法访问A[U][1]

找不到名字“U”。

另一个问题是,A[number extends infer U ? U : never][0] extends key似乎总是评估为false

如何检索与 关联的数组的索引key?我猜测有一些 hacky 类型将数组包装在一个函数中,并检查该函数是否扩展了可以推断索引的东西,但我的最佳尝试没有成功。

type ArrayIdxOf<A extends readonly unknown[], K> =
  (((i: …
Run Code Online (Sandbox Code Playgroud)

typescript

2
推荐指数
1
解决办法
613
查看次数

标签 统计

typescript ×1