create static method

Map<String, TextEditingController> forms = Forms.create(['name', {'qty': 1}]) // Only String and Map are allowed

Implementation

static Map<String, TextEditingController> create(List keys) {
  Map<String, TextEditingController> res =
      Map.fromEntries(List.generate(keys.length, (i) {
    bool isString = keys[i] is String;
    bool isMap = keys[i] is Map;

    if (!isString && !isMap) {
      throw 'Only String and Map are allowed';
    }

    return MapEntry(
        isString ? keys[i] : (keys[i] as Map).keys.first,
        TextEditingController(
            text: isString ? '' : (keys[i] as Map).values.first.toString()));
  }));

  return res;
}