我具有以下功能
export function getDateGroups(reviews: Reviews[]): any {
return reviews.reduce(
(acc, review: Reviews) => {
if (review.isGood) {
return { ...acc, goodReviews: [...acc.goodReviews, review] };
}
return { ...acc, badReviews: [...acc.badReviews, review] };
},
{ goodReviews: [], badReviews: [] }
);
}
可以说我具有以下功能。如何为 getDateGroups 函数定义返回类型?
在这种情况下,我可以创建一个简单的界面,但是当添加的键是动态的时,我有针对该条件的方法吗?
我还可以在reduce函数中定义 acc 的类型吗?
答案 0 :(得分:0)
type DataResult = {
goodReviews: Reviews[],
badReviews: Reviews[]
}
尝试一下,因为acc
是起始值,而您正在返回评论。
type DataResult = {
goodReviews: Reviews[],
badReviews: Reviews[]
}
export function getDateGroups(reviews: Reviews[]): DataResult {
return reviews.reduce(
(acc: DataResult, review: Reviews) => {
if (review.isGood) {
return { ...acc, goodReviews: [...acc.goodReviews, review] };
}
return { ...acc, badReviews: [...acc.badReviews, review] };
},
{ goodReviews: [], badReviews: [] }
);
}
使用dynamic
键
type DataResult = {
[key: string]: Reviews[]
}
答案 1 :(得分:0)
您可以定义如下所示的接口,并将其用于响应和acc
interface ReviewResponse {
[key: string]: Reviews[]
}