gpt4 book ai didi

typescript - 在类型中重新映射键

转载 作者:行者123 更新时间:2023-12-05 03:35:00 28 4
gpt4 key购买 nike

我想创建一个类型 ( U ),它将被定义为具有某个给定类型 T 的键其中 T延伸Object .这种新类型的值将被定义为函数,这些函数将接受原始类型上该键的值类型 T并返回相同的类型。

例如,如果我的类型是 I1 :

interface I1 {
a: number;
b: Date;
}

然后 U<I1>将等于:

{
a: (x: number) => number;
b: (x: Date) => Date;
}

我确实看过一些选项,比如 keyof ,但我还没有弄清楚如何最好地做到这一点。例如,我尝试过:

export type U<T extends {}, K extends keyof T, V extends T[K]> = Record<K, (x: V) => V>;

但是您需要为每个泛型定义显式类型。似乎可以使用 key remapping 重新映射 ts 4 中的键,但现在我卡在 3.7.1 上。

关于如何实现这一点有什么想法吗?

最佳答案

我认为这样的事情应该可行:

type U<T> = {
[Prop in keyof T]: (x: T[Prop]) => T[Prop];
}

你可以用它来测试:

type Test = U<I1>;

当您将鼠标悬停在 Test 上时,您应该会看到所需的签名。

关于typescript - 在类型中重新映射键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69981372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com