Прерыватель флаттера использует сгенерированный класс как тип ответа
Для своего проекта я использую пакеты Chopper (^3.0.1+1) и Moor (^2.2.0), но я не могу заставить их хорошо работать вместе.
В моем файле database.dart я создал класс ActivityTypeTable, который расширяет Table и помечен @DataClassName("ActivityType"). Запуск пакетов flutter pub build_runner build сгенерировал класс ActivityType в файле database.g.dart.
В моем классе rest_client.dart у меня есть метод Chopper @Get, который должен возвращать список объектов ActivityType. Я написал это так:
@Get(path: '/Activity')
Future<Response<List<ActivityType>>> getActivityTypes(@Query("token") String token, @Query("type") int type);
Когда пакеты flutter запускают build_runner build, кажется, что chopper_generator не распознает сгенерированный класс ActivityType. Реализация выше преобразуется в следующий код в файле rest_client.chopper.dart:
@override
Future<Response<List>> getActivityTypes(String token, int type) {
final $url = '/api/Activity';
final $params = <String, dynamic>{'token': token, 'type': type};
final $request = Request('GET', $url, client.baseUrl, parameters: $params);
return client.send<List, List>($request);
}
Тип списка ActivityType опускается, поэтому предполагается, что это список динамического типа. Это дает мне следующую ошибку:'_$RestClient.getActivityTypes' ('Future<Response<List<dynamic>>> Function(String, int)') isn't a valid override of 'RestClient.getActivityTypes' ('Future<Response<List<ActivityType>>> Function(String, int)').dart(invalid_override)
В моем pubspec.yaml у меня есть следующие зависимости
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
firebase_core: ^0.4.3+1
firebase_analytics: ^5.0.9
flutter_svg: ^0.15.0
chopper: ^3.0.1+1
json_annotation: ^3.0.1
get_it: ^1.0.3
provider: ^4.0.1
shared_preferences: ^0.5.6
retrofit: ^1.0.1+1
moor: ^2.2.0
moor_ffi: ^0.3.1
path_provider:
path:
dev_dependencies:
build_runner:
moor_generator: ^2.2.0
json_serializable: ^3.2.0
retrofit_generator: ^1.0.2+2
chopper_generator: ^3.0.3
flutter_test:
sdk: flutter
Предназначено ли описанное поведение или мне следует отправить проблему для пакета chopper на GitHub?