gpt4 book ai didi

typescript - (值 : T): T, 但类型为字符串,之前类型为 null

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:22 26 4
gpt4 key购买 nike

我正在使用一个名为 pathmirror 的工具转换对象如下:

{a: {b: null} }{a: {b: 'a.b'}

这对 redux 操作名称很有帮助。

如何为此创建类型?

目前我有:

declare module "pathmirror" {
export default function<T extends object>(value: T): {[key in keyof T]: object|string};
}

但是 object|string 没有反射(reflect)递归性。

最佳答案

您可以使用递归类型和条件类型将所有原始类型的字段转换为 string,同时保留任何 object 类型的结构。

类型看起来像这样:

type  StringKeysObject<T> = {
[P in keyof T]: T[P] extends number | string | null | undefined | boolean ? string : StringKeysObject<T[P]>;
};


function paths<T extends object>(value: T): StringKeysObject<T>{
return null as any;
};


let dd = paths({
a: {
b: null
}
})
let s = dd.a.b // string

关于typescript - <T extends object>(值 : T): T, 但类型为字符串,之前类型为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52593349/

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