Shopify CLI 与 Headless

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

处理步骤#

  1. tsconfig 的 plugins 加 @shopify/hydrogen/ts-plugin
  2. 查询用 gql() 包裹,并确认首行是 #graphql 注释
  3. loader 返回类型标注 ResultOf<typeof PRODUCT_QUERY>
  4. 组件端写 useLoaderData<typeof loader>(),不要裸调用后断言
  5. 跑 tsc --noEmit 与 hydrogen gql check 双向验证

验收标准#

编辑器能补全 product.title 与 priceRange,tsc --noEmit 零报错,gql check 通过。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。