将地图转换为打字稿中的记录

时间:2020-09-22 06:17:08

标签: typescript typescript2.0 cdk

我有一个使用数学表达式创建指标的用例-

class _MainActivityState extends State<MainActivity> {

  int _selectedPage = 0;
  List<Widget> pageList = List<Widget>();

  @override
  void initState() {
    pageList.add(HomePage());
    pageList.add(ChatPage());
    super.initState();
  }

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: IndexedStack(
        index: _selectedPage,
        children: pageList,
      ),
      //Bottom Navigation Bar added
      bottomNavigationBar: BottomNavigationBar(
    .....

这里metricArguments是new MathExpression({ expression: `SUM([${Object.keys(metricArguments).join(", ")}])`, usingMetrics: metricArguments, }) ,但Map<string,IMetric>需要usingMetrics类型。我想问一下如何将Record<string,IMetric>转换成Map<string,Imetric>,因为我有指标存储在地图中。 我也可以将指标插入到Record类型而不是map中,但是找不到任何方法。

1 个答案:

答案 0 :(得分:3)

您将需要一个函数来将Map转换为对象文字。

function convertMapToObject(metricArguments: Map<string,IMetric>): Record<string,IMetric> {
  let newObject: Record<string,IMetric> = {}
  for (let [key, value] of metricArguments) {
    newObject[key] = value;
  }
  return newObject;
}

new MathExpression({
  expression: `SUM([${Object.keys(metricArguments).join(", ")}])`,
  usingMetrics: convertMapToObject(metricArguments),
})
相关问题