diff --git a/packages/flutter/lib/src/scheduler/ticker.dart b/packages/flutter/lib/src/scheduler/ticker.dart
index e1800b3c7073512adea5b18900515c4d00110631..47058eed429f77fc800815b825eceef55ce800a2 100644
--- a/packages/flutter/lib/src/scheduler/ticker.dart
+++ b/packages/flutter/lib/src/scheduler/ticker.dart
@@ -433,8 +433,8 @@ class TickerFuture implements Future<void> {
   }
 
   @override
-  Future<E> then<E>(dynamic f(void value), { Function onError }) {
-    return _primaryCompleter.future.then<E>(f, onError: onError);
+  Future<R> then<R>(FutureOr<R> onValue(void value), { Function onError }) {
+    return _primaryCompleter.future.then<R>(onValue, onError: onError);
   }
 
   @override