When I first encountered the “The inferred type of ‘meta’ cannot be named without a reference to…” message in Storybook, I was caught off guard. I wanted a quick solution that would keep my TypeScript checks happy and my Storybook setup running smoothly. After a bit of trial and error, I discovered a simple fix that anyone can implement.
Thank me by sharing on Twitter 🙏
The inferred type of ‘meta’ cannot be named without a reference to ‘@storybook/test/node_modules/@vitest/spy’. This is likely not portable. A type annotation is necessary.
1. Spotting the Problem
I noticed that the error showed up whenever I used the satisfies Meta<typeof Kiosk>
approach in my stories. TypeScript decided to infer everything about meta
in a way that pulled in references to internal types from @vitest/spy
, which caused unwanted complexity.
2. Removing the Culprit
To resolve this issue, I removed the satisfies
syntax. Instead of allowing TypeScript to infer the type in a way that caused the error, I switched to explicitly annotating my meta
object.
3. Using a Direct Annotation
I replaced:
SZHAIYIJIN SD Card Reader for iPhone, Memory Card Reader with USB Camera Adapter Plug and Play Trail Game Camera Viewer Supports SD and TF Card MicroSD Card Adapter for iPad No App Required
$7.99 (as of August 15, 2025 23:15 GMT +00:00 - More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)[Apple MFi Certified] 6Pack 3/3/6/6/6/10 FT iPhone Charger Nylon Braided Fast Charging Lightning Cable Compatible iPhone 14 Pro/13 mini/13/12/11 Pro MAX/XR/XS/8/7/Plus/6S/SE/iPad
$11.99 (as of August 15, 2025 23:15 GMT +00:00 - More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)4Pack [Apple MFi Certified] Charger Lightning to USB Charging Cable Cord Compatible iPhone 14/13/12/11 Pro/11/XS MAX/XR/8/7/6s Plus,iPad Pro/Air/Mini,iPod Touch
$7.99 (as of August 15, 2025 23:15 GMT +00:00 - More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)const meta = {
...
} satisfies Meta<typeof MyComponent>;<br>
with:
const meta: Meta<typeof MyComponent> = {
...
};
This direct annotation stopped TypeScript from inferring references to extra types and got rid of the error message.
Conclusion
By swapping out satisfies
for a straightforward type annotation, I resolved the inference issue and kept my Storybook stories functioning as intended. This small change made my setup cleaner and more predictable. I hope this helps anyone struggling with a similar error.