由于其他帖子的帮助,我正在使用combineLatest
将多个可观察到的结果添加到单个订阅中,取得了巨大成功,但无法找到这个问题的答案。
我正试图根据数组中的唯一id将一个可观察到的对象映射到另一个。所以我有两个API给出:
export interface user {
id: string,
name: string,
}
和
export interface rules {
id: string,
users: Array <{
string,
}>
}
我希望合并到:
export interface user {
id: string,
name: string,
rule_id: string,
}
或潜在的
export interface user {
id: string,
name: string,
rules: Array <{
string,
}>
}
下面是我当前的代码
const result$ = combineLatest([users$, rules$]).pipe(
map(([users, rules]) => {
return users.map(user => {
const rulesForUser = rules.filter(rules => rules.users.includes(user.id))
return {
...user,
rules: rulesForUser,
}
})
})
);
并且有这个错误:
错误TS2345:类型为"string"的参数不可分配给类型为"never"的参数。
我现在意识到,多亏了Owen Kelvin,我不应该有"字符串";在预期数组中的我的类型中:
export interface user {
id: string,
name: string,
rules: Array <{
}>
}
我不会撒谎,不知道为什么,但非常感谢!!