У меня есть карта строк для типов в Дарте, например. animals = <String, Type>{'cat':CatType, 'dog':DogType}
, который я изменяю во время выполнения. Есть ли способ гарантировать, что типы, добавленные в эту карту, реализуют определенный интерфейс либо во время компиляции, либо во время выполнения? Что-то вродеОбеспечение того, что тип Dart реализует интерфейс
animals = <String, Type<? implements AnimalType>>{...}
или во время выполнения,
void register(name, type):
if type implements AnimalType:
animals[name] = type