typedef — сокращение от type definition или «определение типа». В документации используется понятие «type alias» — «псевдоним типа», которое ближе к сути. По факту мы просто создаем псевдоним (синоним) для существующего типа данных или функции с целью повышения читаемости кода (иногда эти самые типы могут быть очень сложные или ни о чем не говорящие). Это достаточно старая штука и само ключевое слово
typedef также используется в C/C++. Пример для псевдонимов типов:
typedef SuggestionsState = ListenableState<EntityState<List<ProductEntity>>>;Кстати, возможность сделать так, как указано выше, появилась только два года назад в версии 2.13. Раньше
typedef RequestBody<T> = Map<String, Map<String, T>>;
typedef можно было использовать только для функций. А до версии 1.24 вы обязаны были создать typedef, чтоб передавать функцию, например, как параметр. Надо еще сказать, что псевдонимы для типов данных используются не часто, чаще можно встретить для функций, вроде таких:
typedef DataWidgetBuilder<T> = Widget Function(BuildContext context, T data);
typedef ColorChangeCallback = void Function(Color color);





