Как создать псевдоним типа во Flutter?

Я видел несколько старых вопросов/ответов, в которых говорилось, что невозможно создать псевдоним типа на Flutter. Я просто хочу убедиться, так ли это, поскольку с тех пор язык, похоже, обновлялся много раз.

Мой конкретный вопрос: как я могу сделать псевдоним типа следующим образом:

typealias Json = Map<String, dynamic>;

?

Или есть обходной путь, потому что я пытался использовать пустой миксин, чтобы сделать это, но он говорит, что существует 18 отсутствующих реализаций метода .


person Chen Li Yong    schedule 19.01.2021    source источник


Ответы (3)


На данный момент определения типов поддерживаются только для типов функций (https://dart.dev/guides/language/language-tour#typedefs). Говорят о добавлении большего, но не в ближайшее время (https://github.com/dart-lang/language/issues/115).

person Randal Schwartz    schedule 19.01.2021
comment
Хорошо, спасибо. - person Chen Li Yong; 20.01.2021

Небольшое обновление комментария Рэндая Шварца. Эта функция кажется (по состоянию на апрель 2021 года) почти готовой и, вероятно, будет выпущена в следующей минорной версии или в следующей за ней.

Когда вы читаете это, вероятно, стоит проверить следующую проблему: https://github.com/dart-lang/language/issues/65

Это должно позволить сделать:

typedef NewTypeName = OldTypeName;
person SimonEritsch    schedule 04.04.2021
comment
Это приятно слышать!! - person Chen Li Yong; 16.04.2021

Flutter 2.2 был выпущен вместе с Dart 2.13, теперь код SimonEritsch должен работать так, как вы хотели, пока вы запускаете flutter upgrade на своем терминале или обновляете свой дротик.

person Felipe Morschel    schedule 22.05.2021
comment
Ох. Интересно. На данный момент мои текущие проекты как бы застряли на версии флаттера до-звука-нуля-безопасности, которая также может не иметь исправления от SimonEritsch, поэтому я мог бы использовать это для будущих проектов. Спасибо! - person Chen Li Yong; 24.05.2021