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

使用Yup.test时遇TypeScript错误:originalValue不存在于TestContext类型

解决Yup.test中context.originalValue的TypeScript类型错误

默认情况下,Yup的TestContext<AnyObject>类型并未包含originalValue属性,因此TypeScript会抛出该错误。你可以通过以下两种方式解决:

方式一:全局扩展TestContext类型

在项目的TypeScript声明文件(比如yup.d.ts)中添加以下代码,全局扩展Yup的TestContext接口:

import { TestContext } from 'yup';

declare module 'yup' {
  interface TestContext<TContext> {
    originalValue: string; // 根据实际值类型替换,比如你的场景是字符串
  }
}

这样所有用到TestContext的地方都会自动包含originalValue属性,无需每次单独指定类型。

方式二:在单个.test方法中指定类型

如果仅需在当前校验逻辑中使用,直接给context指定联合类型即可:

.test('00s', 'not a valid number', (value, context: TestContext<AnyObject> & { originalValue: string }) => {
  return context.originalValue.match(ssnRegex);
}),

注意:将代码中的string替换为originalValue的实际类型(如数字、自定义类型等),能让类型检查更严谨。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:50:43