Which part is overcomplicated compared with Dart?
The other thing is the documentation is really easy to grok and come up to speed on:
https://dart.dev/guides/language/language-tour#generics
https://dart.dev/guides/language/sound-dart
Edit: Additionally, mocking (with Mockito-Dart) becomes trivial, which is great for unit testing:
class Thing {
String boo;
}
class MockedThing extends Mock implements Thing {}
when(thing.boo).thenReturn('ack');