diff --git a/core/modules/comment/src/Tests/Views/DefaultViewRecentCommentsTest.php b/core/modules/comment/src/Tests/Views/DefaultViewRecentCommentsTest.php
index cd7031e..acd1398 100644
--- a/core/modules/comment/src/Tests/Views/DefaultViewRecentCommentsTest.php
+++ b/core/modules/comment/src/Tests/Views/DefaultViewRecentCommentsTest.php
@@ -68,10 +68,10 @@ protected function setUp() {
 
     // Add a node of the new content type.
     $node_data = array(
-      'type' => $content_type->type,
+      'type' => $content_type->id(),
     );
 
-    $this->container->get('comment.manager')->addDefaultField('node', $content_type->type);
+    $this->container->get('comment.manager')->addDefaultField('node', $content_type->id());
     $this->node = $this->drupalCreateNode($node_data);
 
     // Force a flush of the in-memory storage.
diff --git a/core/modules/config/src/Tests/ConfigExportImportUITest.php b/core/modules/config/src/Tests/ConfigExportImportUITest.php
index 0c35736..072b23d 100644
--- a/core/modules/config/src/Tests/ConfigExportImportUITest.php
+++ b/core/modules/config/src/Tests/ConfigExportImportUITest.php
@@ -74,18 +74,18 @@ public function testExportImport() {
     $this->fieldStorage->save();
     entity_create('field_config', array(
       'field_storage' => $this->fieldStorage,
-      'bundle' => $this->content_type->type,
+      'bundle' => $this->content_type->id(),
     ))->save();
-    entity_get_form_display('node', $this->content_type->type, 'default')
+    entity_get_form_display('node', $this->content_type->id(), 'default')
       ->setComponent($this->fieldName, array(
         'type' => 'text_textfield',
       ))
       ->save();
-    entity_get_display('node', $this->content_type->type, 'full')
+    entity_get_display('node', $this->content_type->id(), 'full')
       ->setComponent($this->fieldName)
       ->save();
 
-    $this->drupalGet('node/add/' . $this->content_type->type);
+    $this->drupalGet('node/add/' . $this->content_type->id());
     $this->assertFieldByName("{$this->fieldName}[0][value]", '', 'Widget is displayed');
 
     // Export the configuration.
@@ -110,7 +110,7 @@ public function testExportImport() {
         $field_storage->delete();
       }
     }
-    $this->drupalGet('node/add/' . $this->content_type->type);
+    $this->drupalGet('node/add/' . $this->content_type->id());
     $this->assertNoFieldByName("{$this->fieldName}[0][value]", '', 'Widget is not displayed');
 
     // Import the configuration.
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
index 4d62378..e8da567 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
@@ -37,7 +37,7 @@ protected function setUp() {
     // Create a content type, with underscores.
     $type_name = strtolower($this->randomMachineName(8)) . '_test';
     $type = $this->drupalCreateContentType(array('name' => $type_name, 'type' => $type_name));
-    $this->type = $type->type;
+    $this->type = $type->id();
   }
 
   /**
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php
index ac3ebf8..5d8ad97 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php
@@ -25,10 +25,10 @@ protected function setUp() {
 
     // Create "referencing" and "referenced" node types.
     $referencing = $this->drupalCreateContentType();
-    $this->referencing_type = $referencing->type;
+    $this->referencing_type = $referencing->id();
 
     $referenced = $this->drupalCreateContentType();
-    $this->referenced_type = $referenced->type;
+    $this->referenced_type = $referenced->id();
 
     entity_create('field_storage_config', array(
       'field_name' => 'test_field',
@@ -46,13 +46,13 @@ protected function setUp() {
       'label' => 'Entity reference field',
       'field_name' => 'test_field',
       'entity_type' => 'node',
-      'bundle' => $referencing->type,
+      'bundle' => $referencing->id(),
       'settings' => array(
         'handler' => 'default',
         'handler_settings' => array(
           // Reference a single vocabulary.
           'target_bundles' => array(
-            $referenced->type,
+            $referenced->id(),
           ),
           // Enable auto-create.
           'auto_create' => TRUE,
@@ -60,10 +60,10 @@ protected function setUp() {
       ),
     ))->save();
 
-    entity_get_display('node', $referencing->type, 'default')
+    entity_get_display('node', $referencing->id(), 'default')
       ->setComponent('test_field')
       ->save();
-    entity_get_form_display('node', $referencing->type, 'default')
+    entity_get_form_display('node', $referencing->id(), 'default')
       ->setComponent('test_field', array(
         'type' => 'entity_reference_autocomplete',
       ))
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php
index 2c31c1e..6d55b83 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php
@@ -194,7 +194,7 @@ protected function setUpEntityReferenceField() {
 
     entity_create('field_config', array(
       'field_name' => $this->referenceFieldName,
-      'bundle' => $this->referrerType->type,
+      'bundle' => $this->referrerType->id(),
       'entity_type' => $this->testEntityTypeName,
     ))
     ->save();
diff --git a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php
index e71737c..28cc06d 100644
--- a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php
+++ b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php
@@ -23,7 +23,7 @@ class SelectionTest extends WebTestBase {
    */
   public function testSelectionHandler() {
     // Create nodes.
-    $type = $this->drupalCreateContentType()->type;
+    $type = $this->drupalCreateContentType()->id();
     $node1 = $this->drupalCreateNode(array('type' => $type));
     $node2 = $this->drupalCreateNode(array('type' => $type));
     $node3 = $this->drupalCreateNode();
diff --git a/core/modules/field/src/Tests/FieldAccessTest.php b/core/modules/field/src/Tests/FieldAccessTest.php
index b4f0b5a..4b067a8 100644
--- a/core/modules/field/src/Tests/FieldAccessTest.php
+++ b/core/modules/field/src/Tests/FieldAccessTest.php
@@ -43,7 +43,7 @@ protected function setUp() {
 
     // Create content type.
     $content_type_info = $this->drupalCreateContentType();
-    $content_type = $content_type_info->type;
+    $content_type = $content_type_info->id();
 
     $field_storage = array(
       'field_name' => 'test_view_field',
diff --git a/core/modules/field_ui/src/Tests/EntityDisplayTest.php b/core/modules/field_ui/src/Tests/EntityDisplayTest.php
index 82003d8..36f8df5 100644
--- a/core/modules/field_ui/src/Tests/EntityDisplayTest.php
+++ b/core/modules/field_ui/src/Tests/EntityDisplayTest.php
@@ -278,7 +278,7 @@ public function testRenameDeleteBundle() {
 
     // Rename the article bundle and assert the entity display is renamed.
     $type->old_type = 'article';
-    $type->type = 'article_rename';
+    $type->set('type', 'article_rename');
     $type->save();
     $old_display = entity_load('entity_view_display', 'node.article.default');
     $this->assertFalse((bool) $old_display);
diff --git a/core/modules/field_ui/src/Tests/FieldUiTestBase.php b/core/modules/field_ui/src/Tests/FieldUiTestBase.php
index d98978d..27c732b 100644
--- a/core/modules/field_ui/src/Tests/FieldUiTestBase.php
+++ b/core/modules/field_ui/src/Tests/FieldUiTestBase.php
@@ -33,7 +33,7 @@ protected function setUp() {
     // Create content type, with underscores.
     $type_name = strtolower($this->randomMachineName(8)) . '_test';
     $type = $this->drupalCreateContentType(array('name' => $type_name, 'type' => $type_name));
-    $this->type = $type->type;
+    $this->set('type', $type->id());
 
     // Create a default vocabulary.
     $vocabulary = entity_create('taxonomy_vocabulary', array(
diff --git a/core/modules/filter/src/Tests/FilterHooksTest.php b/core/modules/filter/src/Tests/FilterHooksTest.php
index 4b91a31..60951e4 100644
--- a/core/modules/filter/src/Tests/FilterHooksTest.php
+++ b/core/modules/filter/src/Tests/FilterHooksTest.php
@@ -64,7 +64,7 @@ function testFilterHooks() {
     $edit['title[0][value]'] = $title;
     $edit['body[0][value]'] = $this->randomMachineName(32);
     $edit['body[0][format]'] = $format_id;
-    $this->drupalPostForm("node/add/{$type->type}", $edit, t('Save and publish'));
+    $this->drupalPostForm("node/add/{$type->id()}", $edit, t('Save and publish'));
     $this->assertText(t('@type @title has been created.', array('@type' => $type_name, '@title' => $title)));
 
     // Disable the text format.
diff --git a/core/modules/link/src/Tests/LinkFieldUITest.php b/core/modules/link/src/Tests/LinkFieldUITest.php
index 6a36742..d18025a 100644
--- a/core/modules/link/src/Tests/LinkFieldUITest.php
+++ b/core/modules/link/src/Tests/LinkFieldUITest.php
@@ -37,7 +37,7 @@ protected function setUp() {
   function testFieldUI() {
     // Add a content type.
     $type = $this->drupalCreateContentType();
-    $type_path = 'admin/structure/types/manage/' . $type->type;
+    $type_path = 'admin/structure/types/manage/' . $type->id();
 
     // Add a link field to the newly-created type.
     $label = $this->randomMachineName();
diff --git a/core/modules/locale/src/Tests/LocaleContentTest.php b/core/modules/locale/src/Tests/LocaleContentTest.php
index 1bef062..03afbdd 100644
--- a/core/modules/locale/src/Tests/LocaleContentTest.php
+++ b/core/modules/locale/src/Tests/LocaleContentTest.php
@@ -64,7 +64,7 @@ public function testContentTypeLanguageConfiguration() {
     // User to add and remove language.
     $admin_user = $this->drupalCreateUser(array('administer languages', 'administer content types', 'access administration pages'));
     // User to create a node.
-    $web_user = $this->drupalCreateUser(array("create {$type1->type} content", "create {$type2->type} content", "edit any {$type2->type} content"));
+    $web_user = $this->drupalCreateUser(array("create {$type1->id()} content", "create {$type2->id()} content", "edit any {$type2->id()} content"));
 
     // Add custom language.
     $this->drupalLogin($admin_user);
@@ -81,24 +81,24 @@ public function testContentTypeLanguageConfiguration() {
     $this->drupalPostForm('admin/config/regional/language/add', $edit, t('Add custom language'));
 
     // Set the content type to use multilingual support.
-    $this->drupalGet("admin/structure/types/manage/{$type2->type}");
+    $this->drupalGet("admin/structure/types/manage/{$type2->id()}");
     $this->assertText(t('Language settings'), 'Multilingual support widget present on content type configuration form.');
     $edit = array(
       'language_configuration[language_show]' => TRUE,
     );
-    $this->drupalPostForm("admin/structure/types/manage/{$type2->type}", $edit, t('Save content type'));
-    $this->assertRaw(t('The content type %type has been updated.', array('%type' => $type2->name)));
+    $this->drupalPostForm("admin/structure/types/manage/{$type2->id()}", $edit, t('Save content type'));
+    $this->assertRaw(t('The content type %type has been updated.', array('%type' => $type2->get('name'))));
     $this->drupalLogout();
     \Drupal::languageManager()->reset();
 
     // Verify language selection is not present on the node add form.
     $this->drupalLogin($web_user);
-    $this->drupalGet("node/add/{$type1->type}");
+    $this->drupalGet("node/add/{$type1->id()}");
     // Verify language select list is not present.
     $this->assertNoFieldByName('language', NULL, 'Language select not present on the node add form.');
 
     // Verify language selection appears on the node add form.
-    $this->drupalGet("node/add/{$type2->type}");
+    $this->drupalGet("node/add/{$type2->id()}");
     // Verify language select list is present.
     $this->assertFieldByName('langcode', NULL, 'Language select present on the node add form.');
     // Ensure language appears.
@@ -108,7 +108,7 @@ public function testContentTypeLanguageConfiguration() {
     $node_title = $this->randomMachineName();
     $node_body = $this->randomMachineName();
     $edit = array(
-      'type' => $type2->type,
+      'type' => $type2->id(),
       'title' => $node_title,
       'body' => array(array('value' => $node_body)),
       'langcode' => $langcode,
@@ -137,7 +137,7 @@ public function testContentTypeDirLang() {
     // User to add and remove language.
     $admin_user = $this->drupalCreateUser(array('administer languages', 'administer content types', 'access administration pages'));
     // User to create a node.
-    $web_user = $this->drupalCreateUser(array("create {$type->type} content", "edit own {$type->type} content"));
+    $web_user = $this->drupalCreateUser(array("create {$type->id()} content", "edit own {$type->id()} content"));
 
     // Login as admin.
     $this->drupalLogin($admin_user);
@@ -154,12 +154,12 @@ public function testContentTypeDirLang() {
     \Drupal::languageManager()->reset();
 
     // Set the content type to use multilingual support.
-    $this->drupalGet("admin/structure/types/manage/{$type->type}");
+    $this->drupalGet("admin/structure/types/manage/{$type->id()}");
     $edit = array(
       'language_configuration[language_show]' => TRUE,
     );
-    $this->drupalPostForm("admin/structure/types/manage/{$type->type}", $edit, t('Save content type'));
-    $this->assertRaw(t('The content type %type has been updated.', array('%type' => $type->name)));
+    $this->drupalPostForm("admin/structure/types/manage/{$type->id()}", $edit, t('Save content type'));
+    $this->assertRaw(t('The content type %type has been updated.', array('%type' => $type->get('name'))));
     $this->drupalLogout();
 
     // Login as web user to add new node.
@@ -170,7 +170,7 @@ public function testContentTypeDirLang() {
     foreach (array('en', 'es', 'ar') as $langcode) {
       $nodes[$langcode] = $this->drupalCreateNode(array(
         'langcode' => $langcode,
-        'type' => $type->type,
+        'type' => $type->id(),
         'promote' => NODE_PROMOTED,
       ));
     }
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index e9112b19..92b76a7 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -291,7 +291,7 @@ function node_get_type_label(NodeInterface $node) {
  *   The node type description.
  */
 function node_type_get_description(NodeTypeInterface $node_type) {
-  return $node_type->description;
+  return $node_type->get('description');
 }
 
 /**
@@ -334,14 +334,14 @@ function node_add_body_field(NodeTypeInterface $type, $label = 'Body') {
     $field->save();
 
     // Assign widget settings for the 'default' form mode.
-    entity_get_form_display('node', $type->type, 'default')
+    entity_get_form_display('node', $type->id(), 'default')
       ->setComponent('body', array(
         'type' => 'text_textarea_with_summary',
       ))
       ->save();
 
     // Assign display settings for the 'default' and 'teaser' view modes.
-    entity_get_display('node', $type->type, 'default')
+    entity_get_display('node', $type->get('type'), 'default')
       ->setComponent('body', array(
         'label' => 'hidden',
         'type' => 'text_default',
@@ -352,7 +352,7 @@ function node_add_body_field(NodeTypeInterface $type, $label = 'Body') {
     // might not exist.
     $view_modes = \Drupal::entityManager()->getViewModes('node');
     if (isset($view_modes['teaser'])) {
-      entity_get_display('node', $type->type, 'teaser')
+      entity_get_display('node', $type->get('type'), 'teaser')
         ->setComponent('body', array(
           'label' => 'hidden',
           'type' => 'text_summary_or_trimmed',
@@ -378,22 +378,22 @@ function node_entity_extra_field_info() {
     // Visibility of the ordering of the language selector is the same as on the
     // node/add form.
     if ($module_language_enabled) {
-      $configuration = language_get_default_configuration('node', $bundle->type);
+      $configuration = language_get_default_configuration('node', $bundle->id());
       if ($configuration['language_show']) {
-        $extra['node'][$bundle->type]['form']['langcode'] = array(
+        $extra['node'][$bundle->get('type')]['form']['langcode'] = array(
           'label' => t('Language'),
           'description' => $description,
           'weight' => 0,
         );
       }
     }
-    $extra['node'][$bundle->type]['display']['langcode'] = array(
+    $extra['node'][$bundle->id()]['display']['langcode'] = array(
       'label' => t('Language'),
       'description' => $description,
       'weight' => 0,
       'visible' => FALSE,
     );
-    $extra['node'][$bundle->type]['display']['links'] = array(
+    $extra['node'][$bundle->id()]['display']['links'] = array(
       'label' => t('Links'),
       'description' => $description,
       'weight' => 100,
diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php
index e33c1ec..33ecd4b 100644
--- a/core/modules/node/src/Entity/NodeType.php
+++ b/core/modules/node/src/Entity/NodeType.php
@@ -50,7 +50,7 @@ class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
    *
    * @todo Rename to $id.
    */
-  public $type;
+  protected $type;
 
   /**
    * The human-readable name of the node type.
@@ -59,21 +59,21 @@ class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
    *
    * @todo Rename to $label.
    */
-  public $name;
+  protected $name;
 
   /**
    * A brief description of this node type.
    *
    * @var string
    */
-  public $description;
+  protected $description;
 
   /**
    * Help information shown to the user when creating a Node of this type.
    *
    * @var string
    */
-  public $help;
+  protected $help;
 
   /**
    * Default value of the 'Create new revision' checkbox of this node type.
diff --git a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
index 5497ee8..3801d1a 100644
--- a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
+++ b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
@@ -43,7 +43,7 @@ public function testConfigurationRename() {
       'type' => Unicode::strtolower($this->randomMachineName(16)),
       'name' => $this->randomMachineName(),
     ));
-    $staged_type = $content_type->type;
+    $staged_type = $content_type->ID();
 
     // Check the default status value for a node of this type.
     $node = entity_create('node', array('type' => $staged_type));
@@ -61,9 +61,9 @@ public function testConfigurationRename() {
     $this->copyConfig($active, $staging);
 
     // Change the machine name of the content type.
-    $content_type->type = Unicode::strtolower($this->randomMachineName(8));
+    $content_type->set('type', Unicode::strtolower($this->randomMachineName(8)));
     $content_type->save();
-    $active_type = $content_type->type;
+    $active_type = $content_type->id();
 
     // Ensure the base field override has been renamed and the value is correct.
     $node = entity_create('node', array('type' => $active_type));
diff --git a/core/modules/node/src/Tests/NodeTypeTest.php b/core/modules/node/src/Tests/NodeTypeTest.php
index d0d5d54..487e2d6 100644
--- a/core/modules/node/src/Tests/NodeTypeTest.php
+++ b/core/modules/node/src/Tests/NodeTypeTest.php
@@ -39,7 +39,7 @@ function testNodeTypeGetFunctions() {
 
     $article = entity_load('node_type', 'article');
     $this->assertEqual($node_types['article'], $article, 'Correct node type has been returned.');
-    $this->assertEqual($node_types['article']->name, $article->label(), 'Correct node type name has been returned.');
+    $this->assertEqual($node_types['article']->get('name'), $article->label(), 'Correct node type name has been returned.');
   }
 
   /**
@@ -49,14 +49,14 @@ function testNodeTypeCreation() {
     // Create a content type programmaticaly.
     $type = $this->drupalCreateContentType();
 
-    $type_exists = (bool) entity_load('node_type', $type->type);
+    $type_exists = (bool) entity_load('node_type', $type->id());
     $this->assertTrue($type_exists, 'The new content type has been created in the database.');
 
     // Login a test user.
-    $web_user = $this->drupalCreateUser(array('create ' . $type->name . ' content'));
+    $web_user = $this->drupalCreateUser(array('create ' . $type->get('name') . ' content'));
     $this->drupalLogin($web_user);
 
-    $this->drupalGet('node/add/' . $type->type);
+    $this->drupalGet('node/add/' . $type->id());
     $this->assertResponse(200, 'The new content type can be accessed at node/add.');
 
     // Create a content type via the user interface.
@@ -137,11 +137,11 @@ function testNodeTypeDeletion() {
     $this->drupalLogin($web_user);
 
     // Add a new node of this type.
-    $node = $this->drupalCreateNode(array('type' => $type->type));
+    $node = $this->drupalCreateNode(array('type' => $type->id()));
     // Attempt to delete the content type, which should not be allowed.
-    $this->drupalGet('admin/structure/types/manage/' . $type->name . '/delete');
+    $this->drupalGet('admin/structure/types/manage/' . $type->get('name') . '/delete');
     $this->assertRaw(
-      t('%type is used by 1 piece of content on your site. You can not remove this content type until you have removed all of the %type content.', array('%type' => $type->name)),
+      t('%type is used by 1 piece of content on your site. You can not remove this content type until you have removed all of the %type content.', array('%type' => $type->get('name'))),
       'The content type will not be deleted until all nodes of that type are removed.'
     );
     $this->assertNoText(t('This action cannot be undone.'), 'The node type deletion confirmation form is not available.');
@@ -149,9 +149,9 @@ function testNodeTypeDeletion() {
     // Delete the node.
     $node->delete();
     // Attempt to delete the content type, which should now be allowed.
-    $this->drupalGet('admin/structure/types/manage/' . $type->name . '/delete');
+    $this->drupalGet('admin/structure/types/manage/' . $type->get('name') . '/delete');
     $this->assertRaw(
-      t('Are you sure you want to delete the content type %type?', array('%type' => $type->name)),
+      t('Are you sure you want to delete the content type %type?', array('%type' => $type->get('name'))),
       'The content type is available for deletion.'
     );
     $this->assertText(t('This action cannot be undone.'), 'The node type deletion confirmation form is available.');
diff --git a/core/modules/node/src/Tests/Views/NodeIntegrationTest.php b/core/modules/node/src/Tests/Views/NodeIntegrationTest.php
index 2be15a0..faceda3 100644
--- a/core/modules/node/src/Tests/Views/NodeIntegrationTest.php
+++ b/core/modules/node/src/Tests/Views/NodeIntegrationTest.php
@@ -34,8 +34,8 @@ public function testNodeViewTypeArgument() {
 
       for ($j = 0; $j < 5; $j++) {
         // Ensure the right order of the nodes.
-        $node = $this->drupalCreateNode(array('type' => $type->type, 'created' => REQUEST_TIME - ($i * 5 + $j)));
-        $nodes[$type->type][$node->id()] = $node;
+        $node = $this->drupalCreateNode(array('type' => $type->id(), 'created' => REQUEST_TIME - ($i * 5 + $j)));
+        $nodes[$type->id()][$node->id()] = $node;
         $all_nids[] = $node->id();
       }
     }
diff --git a/core/modules/options/src/Tests/OptionsFieldUITest.php b/core/modules/options/src/Tests/OptionsFieldUITest.php
index 40343bf..4152923 100644
--- a/core/modules/options/src/Tests/OptionsFieldUITest.php
+++ b/core/modules/options/src/Tests/OptionsFieldUITest.php
@@ -42,7 +42,7 @@ protected function setUp() {
     $type_name = 'test_' . strtolower($this->randomMachineName());
     $this->type_name = $type_name;
     $type = $this->drupalCreateContentType(array('name' => $type_name, 'type' => $type_name));
-    $this->type = $type->type;
+    $this->type = $type->id();
   }
 
   /**
diff --git a/core/modules/views/src/Tests/GlossaryTest.php b/core/modules/views/src/Tests/GlossaryTest.php
index 61fb6a3..8ae6592 100644
--- a/core/modules/views/src/Tests/GlossaryTest.php
+++ b/core/modules/views/src/Tests/GlossaryTest.php
@@ -40,7 +40,7 @@ public function testGlossaryView() {
     );
     foreach ($nodes_per_char as $char => $count) {
       $setting = array(
-        'type' => $type->type
+        'type' => $type->id()
       );
       for ($i = 0; $i < $count; $i++) {
         $node = $setting;
diff --git a/core/modules/views/src/Tests/SearchIntegrationTest.php b/core/modules/views/src/Tests/SearchIntegrationTest.php
index 6a8ccba..7307ce1 100644
--- a/core/modules/views/src/Tests/SearchIntegrationTest.php
+++ b/core/modules/views/src/Tests/SearchIntegrationTest.php
@@ -39,7 +39,7 @@ public function testSearchIntegration() {
     // with the word "sandwich". Make the second node link to the first.
     $node['title'] = 'pizza';
     $node['body'] = array(array('value' => 'pizza'));
-    $node['type'] = $type->type;
+    $node['type'] = $type->id();
     $this->drupalCreateNode($node);
 
     $this->drupalGet('node/1');
diff --git a/core/modules/views/src/Tests/SearchMultilingualTest.php b/core/modules/views/src/Tests/SearchMultilingualTest.php
index 97213c3..9d3f1dd 100644
--- a/core/modules/views/src/Tests/SearchMultilingualTest.php
+++ b/core/modules/views/src/Tests/SearchMultilingualTest.php
@@ -47,19 +47,19 @@ public function testMultilingualSearchFilter() {
     $edit = array(
       'language_configuration[language_show]' => TRUE,
     );
-    $this->drupalPostForm('admin/structure/types/manage/' . $type->type, $edit, t('Save content type'));
+    $this->drupalPostForm('admin/structure/types/manage/' . $type->id(), $edit, t('Save content type'));
     $edit = array(
       'entity_types[node]' => TRUE,
-      'settings[node][' . $type->type . '][translatable]' => TRUE,
-      'settings[node][' . $type->type . '][fields][title]' => TRUE,
-      'settings[node][' . $type->type . '][fields][body]' => TRUE,
+      'settings[node][' . $type->id() . '][translatable]' => TRUE,
+      'settings[node][' . $type->id() . '][fields][title]' => TRUE,
+      'settings[node][' . $type->id() . '][fields][body]' => TRUE,
     );
     $this->drupalPostForm('admin/config/regional/content-language', $edit, t('Save configuration'));
 
     // Add a node in English, with title "sandwich".
     $values = array(
       'title' => 'sandwich',
-      'type' => $type->type,
+      'type' => $type->id(),
     );
     $node = $this->drupalCreateNode($values);
 
diff --git a/core/modules/views/src/Tests/Wizard/TaggedWithTest.php b/core/modules/views/src/Tests/Wizard/TaggedWithTest.php
index 02e46bc..cf7f380 100644
--- a/core/modules/views/src/Tests/Wizard/TaggedWithTest.php
+++ b/core/modules/views/src/Tests/Wizard/TaggedWithTest.php
@@ -70,23 +70,23 @@ protected function setUp() {
     // configure it to display an autocomplete widget.
     $this->tag_field = array(
       'field_storage' => $this->tag_field_storage,
-      'bundle' => $this->node_type_with_tags->type,
+      'bundle' => $this->node_type_with_tags->id(),
     );
     entity_create('field_config', $this->tag_field)->save();
 
-    entity_get_form_display('node', $this->node_type_with_tags->type, 'default')
+    entity_get_form_display('node', $this->node_type_with_tags->id(), 'default')
       ->setComponent('field_views_testing_tags', array(
         'type' => 'taxonomy_autocomplete',
       ))
       ->save();
 
-    entity_get_display('node', $this->node_type_with_tags->type, 'default')
+    entity_get_display('node', $this->node_type_with_tags->id(), 'default')
       ->setComponent('field_views_testing_tags', array(
         'type' => 'taxonomy_term_reference_link',
         'weight' => 10,
       ))
       ->save();
-    entity_get_display('node', $this->node_type_with_tags->type, 'teaser')
+    entity_get_display('node', $this->node_type_with_tags->id(), 'teaser')
       ->setComponent('field_views_testing_tags', array(
         'type' => 'taxonomy_term_reference_link',
         'weight' => 10,
@@ -100,7 +100,7 @@ protected function setUp() {
   function testTaggedWith() {
     // In this test we will only create nodes that have an instance of the tag
     // field.
-    $node_add_path = 'node/add/' . $this->node_type_with_tags->type;
+    $node_add_path = 'node/add/' . $this->node_type_with_tags->id();
 
     // Create three nodes, with different tags.
     $edit = array();
@@ -120,7 +120,7 @@ function testTaggedWith() {
     $view1 = array();
     // First select the node type and update the form so the correct tag field
     // is used.
-    $view1['show[type]'] = $this->node_type_with_tags->type;
+    $view1['show[type]'] = $this->node_type_with_tags->id();
     $this->drupalPostForm('admin/structure/views/add', $view1, t('Update "of type" choice'));
     // Now resubmit the entire form to the same URL.
     $view1['label'] = $this->randomMachineName(16);
@@ -142,7 +142,7 @@ function testTaggedWith() {
     // Create a view that filters by taxonomy term "tag2". It should show only
     // the one node from above that is tagged with "tag2".
     $view2 = array();
-    $view2['show[type]'] = $this->node_type_with_tags->type;
+    $view2['show[type]'] = $this->node_type_with_tags->id();
     $this->drupalPostForm('admin/structure/views/add', $view2, t('Update "of type" choice'));
     $this->assertResponse(200);
     $view2['label'] = $this->randomMachineName(16);
@@ -172,28 +172,28 @@ function testTaggedWithByNodeType() {
     $tags_xpath = '//input[@name="show[tagged_with]"]';
     $this->drupalGet('admin/structure/views/add');
     $this->assertFieldByXpath($tags_xpath);
-    $view['show[type]'] = $this->node_type_with_tags->type;
+    $view['show[type]'] = $this->node_type_with_tags->id();
     $this->drupalPostForm('admin/structure/views/add', $view, t('Update "of type" choice'));
     $this->assertFieldByXpath($tags_xpath);
-    $view['show[type]'] = $this->node_type_without_tags->type;
+    $view['show[type]'] = $this->node_type_without_tags->id();
     $this->drupalPostForm(NULL, $view, t('Update "of type" choice'));
     $this->assertNoFieldByXpath($tags_xpath);
 
     // If we add an instance of the tagging field to the second node type, the
     // "tagged with" form element should not appear for it too.
     $field = $this->tag_field;
-    $field['bundle'] = $this->node_type_without_tags->type;
+    $field['bundle'] = $this->node_type_without_tags->id();
     entity_create('field_config', $field)->save();
-    entity_get_form_display('node', $this->node_type_without_tags->type, 'default')
+    entity_get_form_display('node', $this->node_type_without_tags->id(), 'default')
       ->setComponent('field_views_testing_tags', array(
         'type' => 'taxonomy_autocomplete',
       ))
       ->save();
 
-    $view['show[type]'] = $this->node_type_with_tags->type;
+    $view['show[type]'] = $this->node_type_with_tags->id();
     $this->drupalPostForm('admin/structure/views/add', $view, t('Update "of type" choice'));
     $this->assertFieldByXpath($tags_xpath);
-    $view['show[type]'] = $this->node_type_without_tags->type;
+    $view['show[type]'] = $this->node_type_without_tags->id();
     $this->drupalPostForm(NULL, $view, t('Update "of type" choice'));
     $this->assertFieldByXpath($tags_xpath);
   }
