#3623·feathers

主方案中的不同类型和创建会导致 TypeScript 问题

作者: AshotN创建于 2025年10月20日更新于 2025年10月20日

// 主数据模型方案 export const companySchema = Type.Object( { id: Type.Number(), count: Type.String() // 例如在 DB 中存储为字符串 }, { $id: 'Company', additionalProperties: false } )

// 创建新条目的方案 export const companyDataSchema = Type.Object( { text: Type.String(), count: Type.Number() // API 会将其视为数字 }, { $id: 'CompanyData', additionalProperties: false } ) export type CompanyData = Static

// 类型错误 - 字符串类型不可赋值为 PromiseOrLiteral<number | undefined> 类型 export const companyDataResolver = resolve<CompanyData, HookContext>({ count: (value, obj, context, status) => { return value + ' People' } }) // 类似地,如果主方案和创建方案之间存在不同的类型,则在钩子中 context.result 将被类型为 any create: [ async (context, next) => { const result = context.result // result 类型为 any await next() } ] 类型永远不应回退到 any,如果出现意外类型,则输出类型应为 never,以免意外破坏 TypeScript。

内容来源: feathersjs/feathers