自定义类型新增未使用Date字段测试抛出TS2322与TS2769错误如何解决
问题原因
该报错本质是TypeScript类型定义缺失导致的编译错误,和业务逻辑、Pinia、Jest运行时无关。你在类型中新增Date字段后,TypeScript需要完整的Date类型定义才能完成校验,而默认生成的Vue + TS项目的tsconfig可能未引入ES2015.Symbol.WellKnown库,导致Date类型缺少[Symbol.toPrimitive]属性的声明,触发类型不匹配错误。新增number、string等基础类型不会触发该问题,是因为这类基础类型的定义无需依赖该额外库。
解决方案
- 第一步:修改项目根目录的
tsconfig.json,在compilerOptions下的lib数组中补充缺失的类型库:
{ "compilerOptions": { "target": "esnext", "module": "esnext", "lib": [ "esnext", "dom", "ES2015.Symbol.WellKnown", // 新增这行即可解决核心报错 "ES2015.Date" // 可选添加,确保Date类型定义完整 ], // 其余原有配置保持不变 } }
- 第二步:如果项目拆分了单测专用的TS配置(比如存在
tsconfig.spec.json),需要同步修改该文件的lib字段,保证单测编译时能读取到对应的类型定义。 - 第三步:重启IDE的TypeScript语言服务,删除本地缓存后重新运行测试即可:
rm -rf node_modules/.cache && npm run test:unit
内容的提问来源于stack exchange,提问作者Question3r
相关产品推荐
相关产品推荐

