метод cast< RK, RV>
При необходимости предоставляет представление этой карты как карты с ключами типа RK и экземплярами типа RV.
Если эта карта уже является Map<RK, RV>, она возвращается без изменений.
Если этот набор содержит только ключи типа RK и значения типа RV, все операции чтения будут работать корректно. Если какая-либо операция предоставляет ключ, не являющийся RK, или значение, не являющееся RV, вместо этого операция вызовет исключение.
Добавляемые в карту записи должны быть допустимы как для Map<K, V>, так и для Map<RK, RV>.
Методы, принимающие Object? в качестве аргумента, например containsKey, remove и operator [], передают аргумент непосредственно методу этой карты без каких-либо проверок. Это означает, что вы можете успешно выполнить mapWithStringKeys.cast<int,int>().remove("a"), даже если кажется, что это не должно иметь никакого эффекта.
Реализация
Map<RK, RV> cast<RK, RV>() => Map.castFrom<K, V, RK, RV>(this);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-collection/MapMixin/cast.html