在现代前端开发中,使用 JSON Schema(简称 JsonSch)进行 API 规范和前端界面校验已经成为了一个普遍的做法。@adminide-stack/schema 是一个基于 JSON Schema 4 规范实现的 npm 包,它提供了对 JSON Schema 进行快捷操作的方法,使开发者可以轻松生成 JavaScript 对象和 TypeScript 声明,并且支持常见的校验规则,包括字符串、数字、日期等等。
安装
npm install @adminide-stack/schema
使用方式
1. 初始化
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------- ----- ------ - --- -------- ------ --------- ----- --------- ----------- - ---------- - ----- --------- -- --------- - ----- --------- -- ---- - ----- ---------- -- ------ - ----- --------- -- -- --------- ------------- ------------ ---展开代码
2. 生成 JavaScript 对象
-- -------------------- ---- ------- ----- ---- - - ---------- ------- --------- ------ ---- --- ------ -------------------- -- --- - ----- ------ - ---------------------- -------------------- -- ---- - ----- ------- - --------------------- -展开代码
3. 生成 TypeScript 声明
console.log(schema.toTypeScript());
生成结果:
interface Person { firstName: string; lastName: string; age?: number; email?: string; }
校验规则
字符串
-- -------------------- ---- ------- ----- ------ - --- -------- ----- --------- ---------- -- ---------- --- -------- -------------- --- -------------------------------------- -- ---- -------------------------------------- -- ----- -----------------------------------展开代码
生成结果:
type StringSchema = 'string';
数字
-- -------------------- ---- ------- ----- ------ - --- -------- ----- --------- -------- -- -------- --- --- -------------------------------- -- ---- --------------------------------- -- ----- -----------------------------------展开代码
生成结果:
type NumberSchema = number;
日期
-- -------------------- ---- ------- ----- ------ - --- -------- ----- --------- ------- ------- --- ------------------------------------------- -- ---- ------------------------------------------- -- ----- -----------------------------------展开代码
生成结果:
type DateSchema = Date | null | undefined;
结语
本篇文章介绍了如何使用 @adminide-stack/schema 包生成 JavaScript 对象和 TypeScript 声明,并且介绍了常见的校验规则。@adminide-stack/schema 是一个非常实用的 npm 包,可以帮助开发者快速进行 JSON Schema 校验规范,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/109299