diff --git a/core/modules/views/src/Plugin/views/display/PathPluginBase.php b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
index 013ac33..371c372 100644
--- a/core/modules/views/src/Plugin/views/display/PathPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
@@ -139,10 +139,11 @@ protected function getRoute($view_id, $display_id) {
     // page arguments so the argument actually comes through.
     $arg_counter = 0;
 
-    $argument_ids = array_keys((array) $this->getOption('arguments'));
-    $total_arguments = count($argument_ids);
+    $arguments = array_values((array) $this->getOption('arguments'));
+    $total_arguments = count($arguments);
 
     $argument_map = [];
+    $parameters = [];
 
     // Replace arguments in the views UI (defined via %) with parameters in
     // routes (defined via {}). As a name for the parameter use arg_$key, so
@@ -156,11 +157,18 @@ protected function getRoute($view_id, $display_id) {
         $argument_map[$arg_id] = $arg_id;
       }
       elseif (strpos($bit, '%') === 0) {
+        $argument_position = $arg_counter;
         // Use the name defined in the path.
         $parameter_name = substr($bit, 1);
         $arg_id = 'arg_' . $arg_counter++;
         $argument_map[$arg_id] = $parameter_name;
         $bits[$pos] = '{' . $parameter_name . '}';
+        if (isset($arguments[$argument_position]['specify_validation']) && !empty($arguments[$argument_position]['specify_validation'])) {
+          $validation_plugin = explode(':', $arguments[$argument_position]['validate']['type']);
+          if (count($validation_plugin) === 2 && $validation_plugin[0] === 'entity') {
+            $parameters[$parameter_name]['type'] = 'entity:' . $validation_plugin[1];
+          }
+        }
       }
     }
 
@@ -201,6 +209,11 @@ protected function getRoute($view_id, $display_id) {
     $route->setOption('_view_display_plugin_class', get_called_class());
     $route->setOption('_view_display_show_admin_links', $this->getOption('show_admin_links'));
 
+    // Set type hints for named parameters.
+    if (!empty($parameters)) {
+      $route->setOption('parameters', $parameters);
+    }
+
     // Store whether the view will return a response.
     $route->setOption('returns_response', !empty($this->getPluginDefinition()['returns_response']));
 
