class-validator
11,853
Stars
845
Forks
64
Watchers
330
Open Issues
MIT
许可证
TypeScript
语言
2015-10-03
创建时间
2026-03-25
最近更新
项目能做什么
基于装饰器的 class 属性数据校验库。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# class-validator

[](https://codecov.io/gh/typestack/class-validator)
[](https://badge.fury.io/js/class-validator)
[](https://packagephobia.now.sh/result?p=class-validator)
Allows use of decorator and non-decorator based validation.
Internally uses [validator.js][1] to perform validation.
Class-validator works on both browser and node.js platforms.
## Table of Contents
- [class-validator](#class-validator)
- [Table of Contents](#table-of-contents)
- [Installation](#installation)
- [Usage](#usage)
- [Passing options](#passing-options)
- [Validation errors](#validation-errors)
- [Validation messages](#validation-messages)
- [Validating arrays](#validating-arrays)
- [Validating sets](#validating-sets)
- [Validating maps](#validating-maps)
- [Validating nested objects](#validating-nested-objects)
- [Validating promises](#validating-promises)
- [Inheriting Validation decorators](#inheriting-validation-decorators)
- [Conditional validation](#conditional-validation)
- [Whitelisting](#whitelisting)
- [Passing context to decorators](#passing-context-to-decorators)
- [Skipping missing properties](#skipping-missing-properties)
- [Validation groups](#validation-groups)
- [Custom validation classes](#custom-validation-classes)
- [Custom validation decorators](#custom-validation-decorators)
- [Using service container](#using-service-container)
- [Synchronous validation](#synchronous-validation)
- [Manual validation](#manual-validation)
- [Validation decorators](#validation-decorators)
- [Defining validation schema without decorators](#defining-validation-schema-without-decorators)
- [Validating plain objects](#validating-plain-objects)
- [Samples](#samples)
- [Extensions](#extensions)
- [Release notes](#release-notes)
- [Contributing](#contributing)
## Installation
```sh
npm install class-validator --save
```
> Note: Please use at least npm@6 when using class-validator. From npm@6 the dependency tree is flattened, which is required by `class-validator` to function properly.
## Usage
Create your class and put some validation decorators on the properties you want to validate:
```typescript
import {
validate,
validateOrReject,
Contains,
IsInt,
Length,
IsEmail,
IsFQDN,
IsDate,
Min,
Max,
} from 'class-validator';
export class Post {
@Length(10, 20)
title: string;
@Contains('hello')
text: string;
@IsInt()
@Min(0)
@Max(10)
rating: number;
@IsEmail()
email: string;
@IsFQDN()
site: string;
@IsDate()
createDate: Date;
}
let post = new Post();
post.title = 'Hello'; // should not pass
post.text = 'this is a great post about hell world'; // should not
阅读完整原文
商业机会分析 AI 生成
DTO-to-Schema 全自动代码与文档生成 SaaS / CLI
| 产品构想 | 利用 AST 解析带有 class-validator 装饰器的类,自动生成完全对齐的 OpenAPI/Swagger 规范、前端 TypeScript 类型声明及 JSON Schema 验证器。 |
| 核心功能 | 一键从 class-validator 提取规则转 OpenAPI 3.1;自动生成前端表单验证逻辑(Zod/Yup 规则映射);CI/CD 契约比对警告(检测破坏性变更)。 |
| 目标用户 | 采用 NestJS/TypeScript 技术栈的全栈开发团队、中小型软件外包企业。 |
| 难度/周期 | 中等 · 4-6 周 · 成本:极低(主要是本地解析 CLI 工具,少量服务器托管 Web 控制台) |
| 收费模式 | Freemium:基础 CLI 免费开源,团队协作、API 契约监控及破坏性变更检测按月收费(SaaS 模式)。 |
| 竞争风险 | 现有 NestJS 官方生态已有 `@nestjs/swagger` 插件部分覆盖该功能,需提供明显超越现有插件的跨端生成体验。 |
| 依据 | 已验证事实(基于已有 decorator 特征)与 AI推测(跨端契约同步痛点) |
动态校验规则云端配置与下发服务 (Dynamic Rule Engine)
| 产品构想 | 为运行 class-validator 的服务提供远程校验规则热更新平台,无需重新发版即可动态修改输入校验阈值与正则规则。 |
| 核心功能 | 提供自定义 Remote Validation Decorator SDK;Web 管理端可视化配置正则/数值/条件规则;低延迟配置下发与灰度控制;本地回退降级策略。 |
| 目标用户 | 风控团队、敏捷迭代的 SaaS 平台后端开发团队。 |
| 难度/周期 | 高 · 8-12 周 · 成本:低至中等(配置存储数据库、配置下发 CDN/WebSocket 服务) |
| 收费模式 | 按调用量/租户月付计费。 |
| 竞争风险 | 增加网络依赖或同步时延,开发者对于核心校验逻辑动态化的安全性与性能心存顾虑。 |
| 依据 | 尚需验证的假设 |
基于 DTO 校验规则的自动化 Mock 与 API 鲁棒性安全测试平台
| 产品构想 | 分析 class-validator 注解,自动生成边界条件(Boundary Testing)、恶意畸形载荷(Fuzzing Testing)并对 API 接口进行自动化防御性渗透测试。 |
| 核心功能 | 智能反向构造边缘数据(刚好超出 Min/Max、非法邮箱、超长字符等);一键生成 Jest/Supertest 测试用例;CI/CD 集成流水线阻断异常抛出未处理等漏洞。 |
| 目标用户 | QA 工程师、DevSecOps 团队、重视 API 稳定性的后端负责人。 |
| 难度/周期 | 中等 · 6-8 周 · 成本:中等(测试运行算力及存储) |
| 收费模式 | 企业级订阅制、按测试任务/用例数收费、私有化部署买断许可。 |
| 竞争风险 | 通用 API 测试工具(如 Postman、K6 等)已占据较大生态,特定针对 class-validator 的垂直工具市场空间有限。 |
| 依据 | 数据支持的判断(利用已定义校验元数据可高精度生成边界输入) |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
| 项目 | 中文简介 | Stars | 语言 |
|---|---|---|---|
| MichalLytek/type-graphql | 中文介绍暂未生成 Create GraphQL schema and resolvers with TypeScript, using c |
8,093 | TypeScript |
| typestack/class-transformer | 中文介绍暂未生成 Decorator-based transformation, serialization, and deseriali |
7,338 | TypeScript |
| microsoft/tsyringe | 中文介绍暂未生成 Lightweight dependency injection container for JavaScript/Ty |
6,013 | TypeScript |
| vuejs/vue-class-component | 中文介绍暂未生成 ES / TypeScript decorator for class-style Vue components. |
5,744 | TypeScript |
| kaorun343/vue-property-decorator | 中文介绍暂未生成 Vue.js and Property Decorator |
5,454 | TypeScript |
| drapergem/draper | 中文介绍暂未生成 Decorators/View-Models for Rails Applications |
5,275 | Ruby |
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。
项目优势与风险
| 技术成熟度 | 创建于 2015-10-03,最近推送 2026-03-25,发布过 10 个 Release |
| 社区活跃 | Star 11,853 / Fork 845 / Issue 330(数据支持,可自行核实) |
| 许可证 | MIT |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
快速开始(以仓库 README 为准)
git clone https://github.com/typestack/class-validator.git cd class-validator # 请阅读仓库 README 获取确切安装步骤(依赖、配置、启动命令)
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。