javascript - 如何为动态向对象添加键的函数定义返回类型?
问题描述
我有以下功能
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定义一个类型吗?
解决方案
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[]
}
推荐阅读
- python - Python拖动鼠标问题
- html - 如何将元素居中并将元素定位到任一侧
- python - 如何在python中完全匹配一个字符串?
- docker - 文件未绑定安装到 docker-compose
- c# - 将 TimeZoneInfo.DisplayName 转换为 TimeZoneInfo.Id
- session - 如何注册以接收只有特定会话 ID 的服务总线会话消息?
- laravel - Laravel 查询生成器。如何使查询更短?
- python - 在 Python 中开发 Telegram 机器人的问题
- jquery - jquery last() 方法对于附加的表行不能正常工作
- php - 将 PHP 数组转换为新的数据结构