Hydrogen loader 返回类型推导不出来怎么修
现象#
组件里 useLoaderData() 拿到的 product 是 any 或 never,product.title 被编辑器标红;构建时 tsc 报 Property 'title' does not exist on type '{}'。
原因#
- 2026-10 改为用 ResultOf 与 StorefrontApi 命名空间推导,不再有全局生成的 d.ts
- loader 返回普通对象,json() 已被移除,类型不再由序列化器推导
- 查询字符串缺少 #graphql 标记,插件不会为它生成任何类型
- tsconfig.json 没启用 @shopify/hydrogen/ts-plugin,编辑器读不到 schema
处理步骤#
- tsconfig 的 plugins 加
@shopify/hydrogen/ts-plugin - 查询用
gql()包裹,并确认首行是#graphql注释 - loader 返回类型标注
ResultOf<typeof PRODUCT_QUERY> - 组件端写
useLoaderData<typeof loader>(),不要裸调用后断言 - 跑
tsc --noEmit与hydrogen gql check双向验证
验收标准#
编辑器能补全 product.title 与 priceRange,tsc --noEmit 零报错,gql check 通过。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。