介绍
添加约束
TypeScript 在表示像 string 或 number 这样的类型时极其灵活,但 email 或 小于 100 的整数 呢?
在 ArkType 中,将类型缩小超出其 basis 的条件称为 约束。
约束是 ArkType 的第一类公民。它们与 TypeScript 的内置运算符完全可组合,并受相同的基本集合论原则支配。
定义
让我们创建一个新的 contact 类型,它强制执行我们的示例约束。
组合
想象一下,我们想要定义一个表示非空 Contact 列表的新类型。
虽然我们一直在使用的表达式语法非常适合创建新类型,但链式调用是精炼或转换现有类型的好方法。
缩小
像除数和范围这样的结构化约束只能带我们走这么远。幸运的是,它们与您所需的任何自定义验证逻辑无缝集成。
您现在知道如何精炼您的类型,以在运行时强制执行额外的约束。
但如果一旦您的输入完全验证后,您仍然需要在它准备好使用之前进行一些调整呢?
介绍的最后一部分将涵盖 morphs,这是一个极其强大的工具,用于组合和转换类型。