Zod 3.21.0 发布,TypeScript 静态类型校验库


TypeScript 静态类型校验库 Zod 现已发布 3.21.0 版本。

Zod 是一个以 TypeScript 为首的模式声明和验证库,其目的是消除重复的类型声明,适用于在框架层辅助建立全链路的类型安全。使用 Zod,开发者只需声明一次验证器,Zod 就会自动推断出静态 TypeScript 类型。

新版本带来如下新内容:

z.string().emoji()

#2045 现在可以验证字符串中的所有字符是否是表情字符。

z.string().emoji()

z.string().ip()

#2066 默认情况下,允许 v4 和 v6 IP地址。

const v4IP = "122.122.122.122";
const v6IP = "6097:adfa:6f0b:220d:db08:5021:6191:7990";

const ipSchema = z.string().ip();
ipSchema.parse(v4IP) //pass
ipSchema.parse(v6IP) //pass

指定一个特定的version

const ipv4Schema = z.string().ip({ version: "v4" });
const ipv6Schema = z.string().ip({ version: "v6" });

z.bigint().{gt|gte|lt|lte}()

ZodBigInt 获取与 ZodNumber 相同的方法集

z.bigint().gt(BigInt(5));
z.bigint().gte(BigInt(5));
z.bigint().lt(BigInt(5));
z.bigint().lte(BigInt(5));
z.bigint().positive();
z.bigint().negative();
z.bigint().nonnegative();
z.bigint().nonpositive();
z.bigint().multipleOf(BigInt(5));

ZodError捕获中的访问

#2087 访问 .catch()方法中抛出的错误。

const numberWithErrorCatch = z.number().catch((e) => {
console.error(e); // ZodError
return 42;
});

错误修复

Zod 3.20.2 引入了一种意外的类型投递,导致某些用户的编译时间过长 这些类型的错误很难诊断, Zod 3.21  #2107解决了这些问题:

  • #2142
  • #1741
  • https://stackoverflow.com/questions/74881472/slow-typescript-autocompletion-in-vs-code-for-zod

 

更新公告:https://github.com/colinhacks/zod/releases/tag/v3.21.0

 


相關推薦

2022-10-10

TypeScript 已经诞生 10 年了。10 年前——2012 年 10 月 1日,TypeScript 首次公开亮相。当时主导 TypeScript 开发的 Anders Hejlsberg 这样描述 TypeScript: 它是 JavaScript 的类型化超集,可被编译成常用的 JavaScript。TypeScript 还可以通过启

2022-03-14

来可选的类型语法,该提案可能会使 JavaScript 原生自带 TypeScript 的一些特性,使 TypeScript 语言更快、更容易使用。 具体而言,该提案要求将类型标注(Type Annotations)添加到 JavaScript 代码中,允许类型标注被外部类型检查器检

2023-10-09

在哗众取宠,刻意钓鱼博眼球。 要知道发布于 2012 年的 TypeScript 目前在诸多编程语言排名、指数或开发者调查中一直位居前列,也是最受欢迎和最常用的编程语言,并被全球数百万开发者使用。 随便找几篇关于 TypeScript 的新

2022-02-23

的通用弱点枚举 (CWE) 覆盖范围。 该功能对 JavaScript 和 TypeScript 代码的静态分析,涵盖了整个 OWASP(开放式 WEB 应用程序安全项目)的十大漏洞类型。功能目前处于 beta 版本,侧重于为一些最常见和最危险的漏洞: 跨站点脚

2023-01-21

ket 模块自主进行权限校验。 [优化] 基于 axios 最新版本 typescript 定义,优化前端 @herodotus/core 模块 axios 核心代码,避免编译过程中出现类型校验错误。 【依赖更新】 [升级] jetcache 版本升级至 2.7.3 [升级] tencentcloud-sdk-jav

2023-11-06

合ArkTS语法规则的代码进行告警。语法检查的规则详见从TypeScript到ArkTS的迁移指导。 AOT优化编译支持端侧闲时编译,增强编译优化进一步提升性能。 PGO支持采集运行期的类型和函数热点信息,支持AOT优化编译JS代码,提升

2024-02-22

加密算法错误 fix: #I8NWX5 [修复] 修复前端 OAuth2Application Typescript 属性类型映射错误问题。fix: #I8NWXP [修复] 修复前端自定义 Datetime组件 v-close-popup 引入错误,在控制台抛出告警信息问题 fix: I8NWY8 [修复] 增强前端登录页面响应

2023-09-27

nature v0.4.0-beta 已发布。 新增 编译时错误优化,显示文件名和行号,类型错误显示类型原始标识 运行时 error 提供堆栈追踪 多行注释/****/支持 import 支持不带前缀的导入方式import utils as * 小型测试用例parker 参数解构功

2023-03-08

态点位等功能,这些新驱动和新功能将在 2.4 版本中正式发布。 IEC61850 驱动 IEC61850 标准是电力系统自动化领域的通用标准。Neuron IEC61850 驱动实现了该标准中 MMS 协议的连接和读写操作。MMS 中的多种数据类型也已经映射到 Neuron

2023-09-19

sp;之类的字符可能会导致新的 MDX 编译错误。 React 18 TypeScript 5 Mermaid 10 详情查看发布公告。

2023-08-09

分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。 repo init -u [email protected]:openharmony/manifest.git -b OpenHarmony-4.0-Beta2 --no-repo-verify repo sync -c repo forall -c 'git lfs pull'   从版本发布Tag节点获取

2023-01-18

风格和操作习惯尽量与当前流行方式统一。 充份使用 Typescript 语言特性,解决大量类型校验问题,尽可能规避 "any" 式的 Typescript 编程语言使用方式。 充份使用 Composition Api 和 Hooks 等 Vue3 框架新版特性进行代码编写。 充份

2024-03-14

风格和操作习惯尽量与当前流行方式统一。 充份使用 Typescript 语言特性,解决大量类型校验问题,尽可能规避 "any" 式的 Typescript 编程语言使用方式。 充份使用 Composition Api 和 Hooks 等 Vue3 框架新版特性进行代码编写。 充份

2023-03-21

RocksDB 是一个高性能键值数据的嵌入式数据库,它是 Google LevelDB 的一个分叉,经过优化,可以利用许多 CPU 核心,并有效地利用快速存储。它是用 C++ 编写的,并为 C++、C 和 Java 提供官方语言绑定,同时还有许多第三方语言绑定