diff --git a/core/modules/node/node.api.php b/core/modules/node/node.api.php
index 2479a29..64e0b3f 100644
--- a/core/modules/node/node.api.php
+++ b/core/modules/node/node.api.php
@@ -148,7 +148,7 @@ function hook_node_grants(\Drupal\Core\Session\AccountInterface $account, $op) {
  * @param \Drupal\node\NodeInterface $node
  *   The node that has just been saved.
  *
- * @return
+ * @return array
  *   An array of grants as defined above.
  *
  * @see node_access_write_grants()
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 91d27e8..b331d6a 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -178,8 +178,9 @@ function node_entity_view_display_alter(EntityViewDisplayInterface $display, $co
  *   query joins the {comment_entity_statistics} table so that the comment_count
  *   field is available, a title attribute will be added to show the number of
  *   comments.
- * @param $title
- *   (optional) A heading for the resulting list.
+ * @param string|null $title
+ *   (optional) A heading for the resulting list. NULL results in no heading.
+ *   Defaults to NULL.
  *
  * @return array|false
  *   A renderable array containing a list of linked node titles fetched from
@@ -295,7 +296,7 @@ function node_type_get_description(NodeTypeInterface $node_type) {
 /**
  * Menu argument loader: Loads a node type by string.
  *
- * @param $name
+ * @param string $name
  *   The machine name of a node type to load.
  *
  * @return \Drupal\node\NodeTypeInterface
@@ -389,7 +390,7 @@ function node_entity_extra_field_info() {
  * @param string $new_id
  *   The new node type of the nodes.
  *
- * @return
+ * @return int
  *   The number of nodes whose node type field was modified.
  */
 function node_type_update_nodes($old_id, $new_id) {
@@ -463,7 +464,7 @@ function node_revision_load($vid = NULL) {
 /**
  * Deletes a node revision.
  *
- * @param $revision_id
+ * @param mixed $revision_id
  *   The revision ID to delete.
  *
  * @return bool
@@ -727,7 +728,7 @@ function node_user_predelete($account) {
 /**
  * Finds the most recently changed nodes that are available to the current user.
  *
- * @param $number
+ * @param int $number
  *   (optional) The maximum number of nodes to find. Defaults to 10.
  *
  * @return \Drupal\node\NodeInterface[]
@@ -771,9 +772,9 @@ function node_get_recent($number = 10) {
  *
  * @param \Drupal\node\NodeInterface $node
  *   A node entity.
- * @param $view_mode
+ * @param string $view_mode
  *   (optional) View mode, e.g., 'full', 'teaser', etc. Defaults to 'full.'
- * @param $langcode
+ * @param string|null $langcode
  *   (optional) A language code to use for rendering. Defaults to NULL which is
  *   the global content language of the current request.
  *
@@ -787,13 +788,13 @@ function node_view(NodeInterface $node, $view_mode = 'full', $langcode = NULL) {
 /**
  * Constructs a drupal_render() style array from an array of loaded nodes.
  *
- * @param $nodes
+ * @param \Drupal\Core\Entity\EntityInterface[] $nodes
  *   An array of nodes as returned by Node::loadMultiple().
- * @param $view_mode
+ * @param string $view_mode
  *   (optional) View mode, e.g., 'full', 'teaser', etc. Defaults to 'teaser.'
- * @param $langcode
- *   (optional) A language code to use for rendering. Defaults to the global
- *   content language of the current request.
+ * @param string|null $langcode
+ *   (optional) A language code to use for rendering. NULL means use the global
+ *   content language of the current request. Defaults to NULL.
  *
  * @return array
  *   An array in the format expected by drupal_render().
@@ -972,11 +973,11 @@ function node_access_grants($op, AccountInterface $account) {
  * 'node_access'; when this function returns TRUE, no node access joins are
  * added to the query.
  *
- * @param $account
+ * @param Drupal\Core\Session\AccountProxyInterface $account
  *   (optional) The user object for the user whose access is being checked. If
  *   omitted, the current user is used. Defaults to NULL.
  *
- * @return
+ * @return bool
  *   TRUE if 'view' access to all nodes is granted, FALSE otherwise.
  *
  * @see hook_node_grants()
@@ -1088,8 +1089,9 @@ function node_query_node_access_alter(AlterableInterface $query) {
  * When unsure if the current user is an administrator, node_access_rebuild()
  * should be used instead.
  *
- * @param $rebuild
- *   (optional) The boolean value to be written.
+ * @param bool|null $rebuild
+ *   (optional) The boolean value to be written. Defaults to NULL, which returns
+ *   the current value.
  *
  * @return bool|null
  *   The current value of the flag if no value was provided for $rebuild. If a
@@ -1121,7 +1123,7 @@ function node_access_needs_rebuild($rebuild = NULL) {
  * Note : As of Drupal 6, node access modules are not required to (and actually
  * should not) call node_access_rebuild() in hook_install/uninstall anymore.
  *
- * @param $batch_mode
+ * @param bool $batch_mode
  *   (optional) Set to TRUE to process in 'batch' mode, spawning processing over
  *   several HTTP requests (thus avoiding the risk of PHP timeout if the site
  *   has a large number of nodes). hook_update_N() and any form submit handler
diff --git a/core/modules/node/src/NodeAccessControlHandlerInterface.php b/core/modules/node/src/NodeAccessControlHandlerInterface.php
index 9e7c34a..72ffc2c 100644
--- a/core/modules/node/src/NodeAccessControlHandlerInterface.php
+++ b/core/modules/node/src/NodeAccessControlHandlerInterface.php
@@ -45,10 +45,10 @@ public function acquireGrants(NodeInterface $node);
    *
    * @param \Drupal\node\NodeInterface $node
    *   The node whose grants are being written.
-   * @param $delete
-   *   (optional) If false, does not delete records. This is only for optimization
-   *   purposes, and assumes the caller has already performed a mass delete of
-   *   some form. Defaults to TRUE.
+   * @param bool $delete
+   *   (optional) If false, does not delete records. This is only for
+   *   optimization purposes, and assumes the caller has already performed a
+   *   mass delete of some form. Defaults to TRUE.
    */
   public function writeGrants(NodeInterface $node, $delete = TRUE);
 
diff --git a/core/modules/node/src/NodeForm.php b/core/modules/node/src/NodeForm.php
index bb6c49d..d664614 100644
--- a/core/modules/node/src/NodeForm.php
+++ b/core/modules/node/src/NodeForm.php
@@ -337,9 +337,9 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
   /**
    * Form submission handler for the 'preview' action.
    *
-   * @param $form
+   * @param array $form
    *   An associative array containing the structure of the form.
-   * @param $form_state
+   * @param Drupal\Core\Form\FormStateInterface $form_state
    *   The current state of the form.
    */
   public function preview(array $form, FormStateInterface $form_state) {
diff --git a/core/modules/node/src/NodeStorageInterface.php b/core/modules/node/src/NodeStorageInterface.php
index 803edc3..cfb30ab 100644
--- a/core/modules/node/src/NodeStorageInterface.php
+++ b/core/modules/node/src/NodeStorageInterface.php
@@ -19,7 +19,7 @@
   /**
    * Gets a list of node revision IDs for a specific node.
    *
-   * @param \Drupal\node\NodeInterface
+   * @param \Drupal\node\NodeInterface $node
    *   The node entity.
    *
    * @return int[]
@@ -41,7 +41,7 @@ public function userRevisionIds(AccountInterface $account);
   /**
    * Counts the number of revisions in the default language.
    *
-   * @param \Drupal\node\NodeInterface
+   * @param \Drupal\node\NodeInterface $node
    *   The node entity.
    *
    * @return int
@@ -66,7 +66,7 @@ public function updateType($old_type, $new_type);
    * Unsets the language for all nodes with the given language.
    *
    * @param \Drupal\Core\Language\LanguageInterface $language
-   *  The language object.
+   *   The language object.
    */
   public function clearRevisionsLanguage(LanguageInterface $language);
 }
diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php
index 0fa464e..d3fba0d 100644
--- a/core/modules/node/src/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/src/Plugin/Search/NodeSearch.php
@@ -401,7 +401,7 @@ public function removeSubmittedInfo(array $build) {
   /**
    * Adds the configured rankings to the search query.
    *
-   * @param $query
+   * @param \Drupal\Core\Database\Query\SelectExtender $query
    *   A query object that has been extended with the Search DB Extender.
    */
   protected function addNodeRankings(SelectExtender $query) {
diff --git a/core/modules/node/src/Plugin/views/argument/Nid.php b/core/modules/node/src/Plugin/views/argument/Nid.php
index f0692f8..bb346c5 100644
--- a/core/modules/node/src/Plugin/views/argument/Nid.php
+++ b/core/modules/node/src/Plugin/views/argument/Nid.php
@@ -35,6 +35,7 @@ class Nid extends NumericArgument {
    * @param mixed $plugin_definition
    *   The plugin implementation definition.
    * @param NodeStorageInterface $node_storage
+   *   The node storage service.
    */
   public function __construct(array $configuration, $plugin_id, $plugin_definition, NodeStorageInterface $node_storage) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
diff --git a/core/modules/node/src/Plugin/views/argument/Vid.php b/core/modules/node/src/Plugin/views/argument/Vid.php
index 77f2bb5..e87e4a0 100644
--- a/core/modules/node/src/Plugin/views/argument/Vid.php
+++ b/core/modules/node/src/Plugin/views/argument/Vid.php
@@ -44,7 +44,7 @@ class Vid extends NumericArgument {
    *   The plugin implementation definition.
    * @param \Drupal\Core\Database\Connection $database
    *   Database Service Object.
-   * @param \Drupal\node\NodeStorageInterface
+   * @param \Drupal\node\NodeStorageInterface $node_storage
    *   The node storage.
    */
   public function __construct(array $configuration, $plugin_id, $plugin_definition, Connection $database, NodeStorageInterface $node_storage) {
diff --git a/core/modules/node/src/Tests/NodeAccessBaseTableTest.php b/core/modules/node/src/Tests/NodeAccessBaseTableTest.php
index 91547c4..ac25f0b 100644
--- a/core/modules/node/src/Tests/NodeAccessBaseTableTest.php
+++ b/core/modules/node/src/Tests/NodeAccessBaseTableTest.php
@@ -176,7 +176,7 @@ function testNodeAccessBasic() {
   /**
    * Checks taxonomy/term listings to ensure only accessible nodes are listed.
    *
-   * @param $is_admin
+   * @param bool $is_admin
    *   A boolean indicating whether the current user is an administrator. If
    *   TRUE, all nodes should be listed. If FALSE, only public nodes and the
    *   user's own private nodes should be listed.
diff --git a/core/modules/node/src/Tests/NodeRevisionsTest.php b/core/modules/node/src/Tests/NodeRevisionsTest.php
index 45fa06d..71427c5 100644
--- a/core/modules/node/src/Tests/NodeRevisionsTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsTest.php
@@ -348,7 +348,7 @@ public function testRevisionTranslationRevert() {
    *
    * @param \Drupal\node\NodeInterface $node
    *   The node object.
-   * @param $count
+   * @param int $count
    *   The number of revisions to be created.
    */
   protected function createRevisions(NodeInterface $node, $count) {
