diff --git a/core/modules/menu_link/menu_link.api.php b/core/modules/menu_link/menu_link.api.php
index 0899cbf..93cd761 100644
--- a/core/modules/menu_link/menu_link.api.php
+++ b/core/modules/menu_link/menu_link.api.php
@@ -1,5 +1,6 @@
 <?php
 
+use Drupal\menu_link\Plugin\Core\Entity\MenuLink;
 /**
  * @file
  * Hooks provided by the Menu link module.
@@ -47,7 +48,7 @@ function hook_menu_link_load($menu_links) {
  *
  * @see hook_menu_link_load()
  */
-function hook_menu_link_presave($menu_link) {
+function hook_menu_link_presave(MenuLink $menu_link) {
   // Make all new admin links hidden (a.k.a disabled).
   if (strpos($menu_link->link_path, 'admin') === 0 && $menu_link->isNew()) {
     $menu_link->hidden = 1;
@@ -78,7 +79,7 @@ function hook_menu_link_presave($menu_link) {
  * @see hook_menu_link_update()
  * @see hook_menu_link_delete()
  */
-function hook_menu_link_insert($menu_link) {
+function hook_menu_link_insert(MenuLink $menu_link) {
   // In our sample case, we track menu items as editing sections
   // of the site. These are stored in our table as 'disabled' items.
   $record['mlid'] = $menu_link->id();
@@ -101,7 +102,7 @@ function hook_menu_link_insert($menu_link) {
  * @see hook_menu_link_insert()
  * @see hook_menu_link_delete()
  */
-function hook_menu_link_update($menu_link) {
+function hook_menu_link_update(MenuLink $menu_link) {
   // If the parent menu has changed, update our record.
   $menu_name = db_query("SELECT menu_name FROM {menu_example} WHERE mlid = :mlid", array(':mlid' => $menu_link->id()))->fetchField();
   if ($menu_name != $menu_link->menu_name) {
@@ -126,7 +127,7 @@ function hook_menu_link_update($menu_link) {
  * @see hook_menu_link_insert()
  * @see hook_menu_link_update()
  */
-function hook_menu_link_delete($menu_link) {
+function hook_menu_link_delete(MenuLink $menu_link) {
   // Delete the record from our table.
   db_delete('menu_example')
     ->condition('mlid', $menu_link->id())
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.module b/core/modules/system/tests/modules/menu_test/menu_test.module
index 36cef57..4d7818e 100644
--- a/core/modules/system/tests/modules/menu_test/menu_test.module
+++ b/core/modules/system/tests/modules/menu_test/menu_test.module
@@ -1,5 +1,6 @@
 <?php
 
+use Drupal\menu_link\Plugin\Core\Entity\MenuLink;
 /**
  * @file
  * Dummy module implementing hook menu.
@@ -512,30 +513,39 @@ function menu_test_menu_name($new_name = '') {
 /**
  * Implements hook_menu_link_insert().
  *
+ * @param \Drupal\menu_link\Plugin\Core\Entity\MenuLink $menu_link
+ *   A menu link entity.
+ *
  * @return
  *  A random string.
  */
-function menu_test_menu_link_insert($item) {
+function menu_test_menu_link_insert(MenuLink $item) {
   menu_test_static_variable('insert');
 }
 
 /**
  * Implements hook_menu_link_update().
  *
+ * @param \Drupal\menu_link\Plugin\Core\Entity\MenuLink $menu_link
+ *   A menu link entity.
+ *
  * @return
  *  A random string.
  */
-function menu_test_menu_link_update($item) {
+function menu_test_menu_link_update(MenuLink $item) {
   menu_test_static_variable('update');
 }
 
 /**
  * Implements hook_menu_link_delete().
  *
+ * @param \Drupal\menu_link\Plugin\Core\Entity\MenuLink $menu_link
+ *   A menu link entity.
+ *
  * @return
  *  A random string.
  */
-function menu_test_menu_link_delete($item) {
+function menu_test_menu_link_delete(MenuLink $item) {
   menu_test_static_variable('delete');
 }
 
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 5570313..4dfc92e 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -9,7 +9,7 @@
 use Drupal\user\UserRole;
 use Drupal\Core\Template\Attribute;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-
+use Drupal\menu_link\Plugin\Core\Entity\MenuLink;
 /**
  * @file
  * Enables the user registration and login system.
@@ -1126,7 +1126,7 @@ function user_menu_site_status_alter(&$menu_site_status, $path) {
 /**
  * Implements hook_menu_link_presave().
  */
-function user_menu_link_presave($link) {
+function user_menu_link_presave(MenuLink $link) {
   // The path 'user' must be accessible for anonymous users, but only visible
   // for authenticated users. Authenticated users should see "My account", but
   // anonymous users should not see it at all. Therefore, invoke
