diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md
index 2afdfb4..1a64764 100644
--- a/packages/go_router_builder/CHANGELOG.md
+++ b/packages/go_router_builder/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.3.4
+
+* Fixes a bug of typeArguments losing NullabilitySuffix
+
 ## 2.3.3
 
 * Adds `initialLocation` for `StatefulShellBranchConfig`
diff --git a/packages/go_router_builder/lib/src/type_helpers.dart b/packages/go_router_builder/lib/src/type_helpers.dart
index bd8cc7f..b17e88b 100644
--- a/packages/go_router_builder/lib/src/type_helpers.dart
+++ b/packages/go_router_builder/lib/src/type_helpers.dart
@@ -94,7 +94,7 @@
 
 String _stateValueAccess(ParameterElement element, Set<String> pathParameters) {
   if (element.isExtraField) {
-    return 'extra as ${element.type.getDisplayString(withNullability: element.isOptional)}';
+    return 'extra as ${element.type.getDisplayString(withNullability: true)}';
   }
 
   late String access;
diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml
index cf48de7..b53161d 100644
--- a/packages/go_router_builder/pubspec.yaml
+++ b/packages/go_router_builder/pubspec.yaml
@@ -2,7 +2,7 @@
 description: >-
   A builder that supports generated strongly-typed route helpers for
   package:go_router
-version: 2.3.3
+version: 2.3.4
 repository: https://github.com/flutter/packages/tree/main/packages/go_router_builder
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router_builder%22
 
diff --git a/packages/go_router_builder/test_inputs/required_nullable_type_arguments_extra_value.dart b/packages/go_router_builder/test_inputs/required_nullable_type_arguments_extra_value.dart
new file mode 100644
index 0000000..2d7f8a1
--- /dev/null
+++ b/packages/go_router_builder/test_inputs/required_nullable_type_arguments_extra_value.dart
@@ -0,0 +1,12 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:go_router/go_router.dart';
+
+@TypedGoRoute<RequiredNullableTypeArgumentsExtraValueRoute>(
+    path: '/default-value-route')
+class RequiredNullableTypeArgumentsExtraValueRoute extends GoRouteData {
+  RequiredNullableTypeArgumentsExtraValueRoute({required this.$extra});
+  final List<int?> $extra;
+}
diff --git a/packages/go_router_builder/test_inputs/required_nullable_type_arguments_extra_value.dart.expect b/packages/go_router_builder/test_inputs/required_nullable_type_arguments_extra_value.dart.expect
new file mode 100644
index 0000000..9877d35
--- /dev/null
+++ b/packages/go_router_builder/test_inputs/required_nullable_type_arguments_extra_value.dart.expect
@@ -0,0 +1,30 @@
+RouteBase get $requiredNullableTypeArgumentsExtraValueRoute =>
+    GoRouteData.$route(
+      path: '/default-value-route',
+      factory:
+          $RequiredNullableTypeArgumentsExtraValueRouteExtension._fromState,
+    );
+
+extension $RequiredNullableTypeArgumentsExtraValueRouteExtension
+    on RequiredNullableTypeArgumentsExtraValueRoute {
+  static RequiredNullableTypeArgumentsExtraValueRoute _fromState(
+          GoRouterState state) =>
+      RequiredNullableTypeArgumentsExtraValueRoute(
+        $extra: state.extra as List<int?>,
+      );
+
+  String get location => GoRouteData.$location(
+        '/default-value-route',
+      );
+
+  void go(BuildContext context) => context.go(location, extra: $extra);
+
+  Future<T?> push<T>(BuildContext context) =>
+      context.push<T>(location, extra: $extra);
+
+  void pushReplacement(BuildContext context) =>
+      context.pushReplacement(location, extra: $extra);
+
+  void replace(BuildContext context) =>
+      context.replace(location, extra: $extra);
+}
