用途:为全栈项目建立前后端共享的 TypeScript 类型,避免类型重复定义与漂移。
主要能力:先确认架构(monorepo 或分离仓库)、类型来源(Prisma、OpenAPI/GraphQL 或手写 TS)、技术栈与是否已有漂移问题,再选择单一模式,不混用。可选模式包括:monorepo 手写类型用共享 @repo/types 包;schema-first 用生成类型包;分离仓库用发布 npm 包并锁定版本;已用 tRPC 则直接路由推断,无需独立包;也可用 Zod 作为唯一来源。
使用方式:共享包通过 exports 指向 src 源码以避免构建步骤,根 tsconfig 配置 paths 别名。Prisma 只再导出安全的数据形状,避免前端引入服务端代码,并可用 postgenerate 钩子保持同步。OpenAPI 用 npx openapi-typescript ./openapi.yaml -o packages/types/src/api.ts 生成。tRPC 只导出 typeof appRouter。防漂移可加跨包 typecheck 脚本,使用 satisfies 运算符,共享枚举用 const 对象加联合类型而非 TS enum。
适用场景:需要统一前后端类型契约的全栈项目。
限制:具体配置依赖项目实际架构与栈,资料未提供各框架的完整适配细节、版本要求或收费信息。