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 }));
逻辑说明:
permissionMap.entries()返回一个迭代器,每个元素是[键名, 键值]的数组结构(比如["edit", true])Array.from()将迭代器转为普通数组,再通过map()遍历每个键值对,解构后重组为你需要的对象结构- TypeScript会自动识别转换后的数组类型完全匹配
{ perm: string; isTrue: boolean; }[],无需额外类型声明
简化写法(使用扩展运算符):
const permissionArray = [...permissionMap.entries()].map(([perm, isTrue]) => ({ perm, isTrue }));
如果是处理IUser对象中的permissions属性,直接对该属性执行上述转换即可。
内容的提问来源于stack exchange,提问作者TyuJas
相关产品推荐
相关产品推荐

