Почему динамическая типизация во Flutter не может вернуть правильный тип? - PullRequest
1 голос
/ 04 марта 2020

У меня есть эта функция:

U on<T, U> (T value, T defaultValue, U Function (T value) builder) => builder(value ?? defaultValue);

Если я использую это следующим образом:

var a = "Hello";
var b = "World";
final result = on(a, b, (value) => Text(value))

Внутри параметра обратного вызова построителя тип значения всегда Dynami c. Почему он не может иметь тот же тип, что и параметры a и b?

1 Ответ

1 голос
/ 04 марта 2020

Дарт в настоящее время не поддерживает вывод в списках параметров. Однако эта проблема отслеживается # 731 .

Прямо сейчас вам необходимо явно набрать следующее:

final result = on(a, b, (String value) => Text(value))

Это по крайней мере принудительно, что a b и builder имеют один и тот же тип.

С наступающим правилом анализатора implicit-dynamic подобные вещи будут обнаруживаться более легко, а увеличение накладных расходов на техническое обслуживание, надеюсь, позволит дротику сопровождающие язык пересматривают приоритеты вопроса вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...