diff --git a/core/lib/Drupal/Core/Config/TypedConfigManager.php b/core/lib/Drupal/Core/Config/TypedConfigManager.php
index d775cc2d30ea6be8460a8d37b9e02769d3bfca5c..fb1c19808eb6d7aa4786ab72aa31b0ca114e78ec 100644
--- a/core/lib/Drupal/Core/Config/TypedConfigManager.php
+++ b/core/lib/Drupal/Core/Config/TypedConfigManager.php
@@ -130,7 +130,9 @@ public function getDefinition($base_plugin_id, $exception_on_invalid = TRUE) {
     // Check whether this type is an extension of another one and compile it.
     if (isset($definition['type'])) {
       $merge = $this->getDefinition($definition['type'], $exception_on_invalid);
-      $definition = NestedArray::mergeDeep($merge, $definition);
+      // Preserve integer keys on merge, so sequence item types can override
+      // parent settings as opposed to adding unused second, third, etc. items.
+      $definition = NestedArray::mergeDeepArray(array($merge, $definition), TRUE);
       // Unset type so we try the merge only once per type.
       unset($definition['type']);
       $this->definitions[$type] = $definition;
diff --git a/core/modules/taxonomy/config/schema/taxonomy.views.schema.yml b/core/modules/taxonomy/config/schema/taxonomy.views.schema.yml
index 3b46f3da77ec2f5a072c00b5bb4bfc4b30be0ee8..d64639ec739baed83d343bef0151d5dd014b5f41 100644
--- a/core/modules/taxonomy/config/schema/taxonomy.views.schema.yml
+++ b/core/modules/taxonomy/config/schema/taxonomy.views.schema.yml
@@ -148,29 +148,17 @@ views.filter.taxonomy_index_tid:
     error_message:
       type: boolean
       label: 'Display error message'
-
-views.filter.taxonomy_index_tid_depth:
-  type: views.filter.in_operator
-  label: 'Taxonomy term ID with depth'
-  mapping:
-    operator:
-      type: string
-      label: 'Operator'
     value:
       type: sequence
       label: 'Values'
       sequence:
-        - type: string
+        - type: integer
           label: 'Value'
-    vid:
-      type: string
-      label: 'Vocabulary'
-    type:
-      type: string
-      label: 'Selection type'
-    hierarchy:
-      type: boolean
-      label: 'Show hierarchy in dropdown'
+
+views.filter.taxonomy_index_tid_depth:
+  type: views.filter.taxonomy_index_tid
+  label: 'Taxonomy term ID with depth'
+  mapping:
     depth:
       type: integer
       label: 'Depth'
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
index 430f6f983f54bff5921893564c721731569ee1b5..c8b3192fb55cfa587ebbe9382a230fe5ee45c5bd 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
@@ -136,7 +136,7 @@ display:
           admin_label: ''
           operator: or
           value:
-            - '2'
+            - 2
           group: 1
           exposed: false
           expose:
diff --git a/core/modules/views/config/schema/views.filter.schema.yml b/core/modules/views/config/schema/views.filter.schema.yml
index 3a97c25b301b983192b248dbddfde43e746b3e04..969d212f371c16ab35e98db978818b58173d828b 100644
--- a/core/modules/views/config/schema/views.filter.schema.yml
+++ b/core/modules/views/config/schema/views.filter.schema.yml
@@ -101,18 +101,9 @@ views.filter.many_to_one:
   type: views.filter.in_operator
   label: 'Many to one'
   mapping:
-    operator:
-      type: string
-      label: 'Operator'
     reduce_duplicates:
       type: boolean
       label: 'Reduce duplicate'
-    value:
-      type: sequence
-      label: 'Values'
-      sequence:
-        - type: string
-          label: 'Value'
 
 views.filter.standard:
   type: views_filter
@@ -140,7 +131,3 @@ views.filter_value.combine:
 views.filter.language:
   type: views.filter.in_operator
   label: 'Language'
-
-views.filter_value.language:
-  type: string
-  label: 'Language'