You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+TypeScript中如何将Map<string, boolean>转为{perm:string;isTrue:boolean;}[]?

将Map<string, boolean>转换为指定数组类型的方法

你可以通过Map.prototype.entries()结合数组的map()方法直接完成转换,TypeScript能自动推导目标类型,无需额外手动断言。

具体实现代码:

// 示例Map数据
const permissionMap = new Map<string, boolean>([
  ["edit", true],
  ["delete", false],
  ["view", true]
]);

// 转换为 { perm: string; isTrue: boolean; }[] 类型
const permissionArray = Array.from(permissionMap.entries()).map(([perm, isTrue]) => ({
  perm,
  isTrue
}));

逻辑说明:

  1. permissionMap.entries()返回一个迭代器,每个元素是[键名, 键值]的数组结构(比如["edit", true])
  2. Array.from()将迭代器转为普通数组,再通过map()遍历每个键值对,解构后重组为你需要的对象结构
  3. TypeScript会自动识别转换后的数组类型完全匹配{ perm: string; isTrue: boolean; }[],无需额外类型声明

简化写法(使用扩展运算符):

const permissionArray = [...permissionMap.entries()].map(([perm, isTrue]) => ({
  perm,
  isTrue
}));

如果是处理IUser对象中的permissions属性,直接对该属性执行上述转换即可。

内容的提问来源于stack exchange,提问作者TyuJas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:12:05