diff --git a/changelog.d/11332.misc b/changelog.d/11332.misc
new file mode 100644
index 0000000000000000000000000000000000000000..86594a332db9b5a1287ad1b79ddfb4becf1871fb
--- /dev/null
+++ b/changelog.d/11332.misc
@@ -0,0 +1 @@
+Add type hints to storage classes.
diff --git a/mypy.ini b/mypy.ini
index 67dde5991b02864644129193e6cc8ff644889d5e..108e1e895c1b586596bb4967bdac7cbe9d8d18fe 100644
--- a/mypy.ini
+++ b/mypy.ini
@@ -175,7 +175,16 @@ disallow_untyped_defs = True
 [mypy-synapse.state.*]
 disallow_untyped_defs = True
 
-[mypy-synapse.storage]
+[mypy-synapse.storage.databases.main.client_ips]
+disallow_untyped_defs = True
+
+[mypy-synapse.storage.databases.main.room_batch]
+disallow_untyped_defs = True
+
+[mypy-synapse.storage.databases.main.user_erasure_store]
+disallow_untyped_defs = True
+
+[mypy-synapse.storage.util.*]
 disallow_untyped_defs = True
 
 [mypy-synapse.streams.*]
@@ -268,7 +277,10 @@ disallow_untyped_defs = True
 [mypy-synapse.util.versionstring]
 disallow_untyped_defs = True
 
-[mypy-tests]
+[mypy-tests.handlers.test_user_directory]
+disallow_untyped_defs = True
+
+[mypy-tests.storage.test_user_directory]
 disallow_untyped_defs = True
 
 [mypy-tests.rest.client.test_directory]