В моем проекте Flutter я включил пакет lint
. Где-то в моем коде есть карта Map<String, List<dynamic>> options = ...;
. Список типизирован как динамический, но на самом деле это всегда нерастущий список длиной 2 [String, IconData]
. Я использую карту следующим образом:
options.entries
.map((e) => SwitchListTile(
title: Text(e.value[0].toString()),
secondary: Icon(e.value[1]),
value: notificationSettings[e.key],
onChanged: (bool value) => onNotificationChanged(topic: e.key, enabled: value),
))
.toList());
т.е. String
в списке — это заголовок listTile, IconData
— это отображаемый значок, а ключи карты даются notificationSettings
для получения текущей настройки, а также обработчику onNotificationChanged
, который обновляет настройку.
Линтер говорит, что я не должен использовать переменные dynamic
в тех местах, где я использовал e.value[i]
, поэтому мне было интересно, можно ли явно ввести нерасширяемый список фиксированного типа, например. написав что-то вроде List<String, IconData>
. Я попробовал несколько интуитивных синтаксисов, но они не работают, и я ничего не могу найти в Интернете.