登录 注册

class-validator

去点 Star
其他 decoratorstypescriptvalidationvalidator
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

![Build Status](https://github.com/typestack/class-validator/workflows/CI/badge.svg)
[![codecov](https://codecov.io/gh/typestack/class-validator/branch/develop/graph/badge.svg)](https://codecov.io/gh/typestack/class-validator)
[![npm version](https://badge.fury.io/js/class-validator.svg)](https://badge.fury.io/js/class-validator)
[![install size](https://packagephobia.now.sh/badge?p=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 章节有说明。