已检查类型为裸类型参数的条件类型...
谷歌没有帮助,或答案是针对C#,我不知道.无法在Typescript文档中找到该术语.从背景中获取意义也很难......
顺便说一下我知道什么是"类型参数".但"裸体"是什么意思呢?
我正在努力制作一个泛型,它将递归地修改嵌套递归数据结构中找到的所有元素。这是我的数据结构的示例。使用此递归数据定义,任何帖子都可以有无限数量的评论和回复。
type Post = {
user: string,
content: string,
comments: Comment[],
reactions: Reaction[],
}
type Comment = {
user: string,
content: string,
replies: Comment[],
}
type Reaction = {
user: string,
reaction: "laugh" | "cry" | "smile",
}
Run Code Online (Sandbox Code Playgroud)
我想要的是一个通用包装器,我可以将其与这些数据类型和任何其他数据类型一起使用,将每个字段替换user为其他内容。我可以为顶层做到这一点:
type UserFilled<T> = Omit<"user", T> & { user: { id: string, name: string }}
Run Code Online (Sandbox Code Playgroud)
但这只会改变user《华盛顿邮报》的领域。我还希望它能够爬下来并替换user每个评论的更改字段,如果有更多字段,则用于反应、点赞或任何其他带有 a 的结构user。
我已经看到这个关于递归省略某些内容的答案,但我无法使用联合将修改后的属性添加回来,我想知道是否有更直接的方法来做到这一点,同时不仅省略而且替换字段?
例如,使用通用我希望能够做到这一点:
const post: Post = {
user: "1234",
content: "this is …Run Code Online (Sandbox Code Playgroud)