Javascript Typescript相同键但不同类型嵌套(keyof但嵌套)
我正在尝试创建一个自定义类型,它将泛型参数T的所有类型替换为Javascript Typescript相同键但不同类型嵌套(keyof但嵌套),javascript,typescript,Javascript,Typescript,我正在尝试创建一个自定义类型,它将泛型参数T的所有类型替换为string[],但将所有属性名称保持嵌套状态 预期行为:无错误 interface Bar { lat: string, lng: string } interface Foo { id: string, bar: Bar } export type PartialDeepKeyOf<T> = { [id in keyof T]: string[] } const baz: Partial
string[]
,但将所有属性名称保持嵌套状态
预期行为:无错误
interface Bar {
lat: string,
lng: string
}
interface Foo {
id: string,
bar: Bar
}
export type PartialDeepKeyOf<T> = { [id in keyof T]: string[] }
const baz: PartialDeepKeyOf<Foo> = {
id: ['a','b'],
bar: {
lat: ['a','b'],
lng: ['a','b'],
}
}
接口栏{
拉特:弦,
液化天然气:管柱
}
接口Foo{
id:string,
酒吧:酒吧
}
导出类型PartialDeepKeyOf={[keyof T中的id]:字符串[]}
const baz:PartialDeepKeyOf={
id:['a','b'],
酒吧:{
纬度:['a','b'],
液化天然气:['a','b'],
}
}
实际行为:
类型“{lat:string[];lng:string[];}”不可分配给类型
'字符串[]'
您需要递归类型遍历
type PartialDeepKeyOf<T> = {
[P in keyof T]: T[P] extends string
? string[]
: PartialDeepKeyOf<T[P]>
};
type PartialDeepKeyOf={
[P in keyof T]:T[P]扩展字符串
?字符串[]
:PartialDeepKeyOf
};
是,但“我正在尝试创建一个自定义类型,该类型将泛型参数T的所有类型替换为字符串[],但将所有属性名保持嵌套状态。”