# @felte/validator-yup 中文文档

规范地址：https://npmcn.com/package/%40felte/validator-yup/

版本：1\.1\.4
npm 元数据更新时间：2024-10-29T22:05:28.549Z
中文译文更新时间：2026-11-14T14:08:50.155Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40felte/validator-yup
原文对照：https://npmcn.com/package/%40felte/validator-yup/?lang=original
项目主页：https://github.com/pablo-abc/felte/tree/main/packages/validator-yup
源码仓库：https://github.com/pablo-abc/felte

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：15.5 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：^12\.20\.0 \|\| ^14\.13\.1 \|\| \>=16\.0\.0
- 运行依赖：1 个
- peer 依赖：yup \>=1\.2\.0
- 首次发布：2021-03-21T16:02:45.949Z
- 最新版本发布：2024-10-29T22:05:28.329Z
- 近 30 天下载量：28940（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：55（近 12 个月 0 个）

## 中文简介

要使用 YUP 的软件包

## 安装

```sh
npm install @felte/validator-yup
```

也可以使用：`pnpm add @felte/validator-yup`、`yarn add @felte/validator-yup`、`bun add @felte/validator-yup`

## README

# @felte/验证器-yup

[![Tests](https://github.com/pablo-abc/felte/workflows/Tests/badge.svg)](https://github.com/pablo-abc/felte/actions/workflows/test.yml) [![Bundle size](https://img.shields.io/bundlephobia/min/@felte/validator-yup)](https://bundlephobia.com/result?p=@felte/validator-yup) [![NPM Version](https://img.shields.io/npm/v/@felte/validator-yup)](https://www.npmjs.com/package/@felte/validator-yup) [![codecov](https://codecov.io/gh/pablo-abc/felte/branch/main/graph/badge.svg?token=T73OJZ50LC)](https://codecov.io/gh/pablo-abc/felte)

在 Felte 中帮助您处理 Yup 验证的软件包 .

## 安装

```sh
npm install --save @felte/validator-yup yup

# Or, if you use yarn

yarn add @felte/validator-yup yup
```

## 使用量

打电话 `validator` 含有您 YUP 方案的内容 `schema` 属性。 调用的结果可以作为延伸器传递给费尔特:

```javascript
import { validator } from '@felte/validator-yup';
import * as yup from 'yup';

const schema = yup.object({
  email: yup.string().email().required(),
  password: yup.string().required(),
});

const { form } = createForm({
  // ...
  extend: validator({ schema }), // or `extend: [validator({ schema })],`
  // ...
});
```

使用 `validateSchema` 函数直接在 `validate` 选项 `createForm`. (不需要延长Felte).

```javascript
import { validateSchema } from '@felte/validator-yup';
import * as yup from 'yup';

const schema = yup.object({
  email: yup.string().email().required(),
  password: yup.string().required(),
});

const { form } = createForm({
  // ...
  validate: validateSchema(schema),
  // ...
});
```

## 铸造价值

与 `yup`,默认情况下,此验证符会 **没有** 铸造价值。 如果你想有这种行为,你可以设置 `castValues` 属性改为 `true` 在验证符的配置上 :

```javascript
const { form } = createForm({
  //...
  extend: validator({ schema, castValues: true }),
  //...
});
```

**页:1**数字 : `yup` 如果你的计谋失败了,就抛出, **我们没有抓住这个错误** 所以,确保你的计划 处理得当 防止你的应用程序崩溃。 比如,让我们假设我们有一个 `text` 输入应投入整数. `yup`是因为 `number` 如果设置了字符串,规则会出错,为了防止您的应用程序崩溃,需要自定义规则:

```javascript
const schema = yup.object({
  shouldBeNumber: yup
    .mixed()
    .test('number', 'Must be a number', value => !isNaN(value))
    .transform(value => parseInt(value, 10)),
});
```

## 警告

您可以选择让此软件包指定您验证的结果 `warnings` 通过设置存储 `level` 校验函数的属性 `warning`这是 `error` 默认:

```javascript
import { validator } from '@felte/validator-yup';
import * as yup from 'yup';

const validateSchema = yup.object({
  email: yup.string().email().required(),
  password: yup.string().required(),
});

// We only warn if the user has already started typing a value
const warnSchema = yup.object({
  password: yup
    .string()
    .test('is-secure', 'password is not secure', (value) =>
      value ? value.length > 8 : true
    ),
});

const { form } = createForm({
  // ...
  extend: [
    validator({ schema }),
    validator({ schema: warnSchema, level: 'warning' }),
  ],
  // ...
});
```

## 字体

是的 让你可以推断出你的计划 `yup.InferType`。这个可以使用,因此不需要为表单数据创建类型:

```typescript
import * as yup from 'yup';

const schema = yup.object({
  email: yup.string().email().required(),
  password: yup.string().required(),
});

const { form } = createForm<yup.InferType<typeof schema>>(/* ... */);
```

## 常见问题

### @felte/validator-yup 是什么？

要使用 YUP 的软件包

### 如何安装 @felte/validator-yup？

在项目目录运行 npm install @felte/validator-yup，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：yup（\>=1\.2\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @felte/validator-yup 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @felte/validator-yup 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @felte/validator-yup 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^12\.20\.0 \|\| ^14\.13\.1 \|\| \>=16\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @felte/validator-yup 可以商用吗？

@felte/validator-yup 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @felte/validator-yup 的下载量有多少？

根据 npm 官方下载统计，@felte/validator-yup 在 2026/10/15 – 2026/11/13 这 30 天内被下载 28,940 次，日均约 965 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @felte/validator-yup 还在维护吗？

最新版本 1\.1\.4 发布于 2024/10/30（2 年前）；至今共发布 55 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/03/22。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

