Я пытаюсь перенести старый код dart 1.25 в 2.7 на windows. Я сталкиваюсь с некоторыми ошибками и не понимаю, как их исправить.
В коде использовались некоторые параметры типа Null в typedef, например:
typedef dynamic PropertyGetter(Null object);
Я не совсем понимаю, почему это было закодировано как это, но это работало на 1.25. Этот typedef использовался, чтобы получить свойство для любого переданного типа объекта, который может быть Null, я полагаю. Я также предполагаю, что параметр типа Null имел свою собственную причину присутствия.
Но теперь, с помощью dart 2.7, при выполнении кода у меня появляются такие ошибки:
type 'XXXType' is not a subtype of type 'Null'
Любые идея, как можно исправить код typedef?
--- Edit 1 ---
Вот тестовый пример для эксперимента с проблемой:
typedef int PropertyGetter(Null object);
void main() {
testTypedef(test1, 2);
testTypedef(test2, 'foo');
}
void testTypedef(PropertyGetter pg, param){
pg(param);
}
int test1(int val) {
print('val:$val');
return val;
}
int test2(String val) {
print('val:$val');
return 0;
}
console сообщение об ошибке:
Unhandled exception:
type 'int' is not a subtype of type 'Null'