You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Drizzle查询中获取指定列的返回类型?

解决方法

方法1:从查询函数返回值自动推断(推荐)

利用TypeScript的ReturnType和Awaited工具类型,直接从你的查询函数提取精确返回类型,完全匹配你选中的列:

// 自动提取getSubscription函数的异步返回类型
type SubscriptionResult = Awaited<ReturnType<typeof getSubscription>>

// 在Props中使用该类型
interface PricesProps {
    subscription?: SubscriptionResult
}

这个方式的优势是自动同步——以后修改查询的columns配置,类型会自动更新,不用手动维护字段列表。

方法2:手动从全表类型筛选字段

如果你需要明确指定字段,可以用Pick工具类型从全表类型中挑选需要的列:

// 从全表类型中筛选出plan和subscription_id字段
type SelectedSubscription = Pick<typeof subscriptions.$inferSelect, 'plan' | 'subscription_id'>

// 在Props中使用该类型
interface PricesProps {
    subscription?: SelectedSubscription
}

为什么之前的方式不生效

你之前用的subscriptions.$inferSelect是Drizzle生成的全表默认查询类型,它固定包含表的所有字段,和你实际查询时指定的columns配置无关,所以才会返回完整类型而非选中列的类型。

内容的提问来源于stack exchange,提问作者user30123003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:22:35