Skip to content

parse ​

校验数据,有效时返回数据,无效时抛出 ValidationError。适合在服务端使用:请求无效时可以立即中止处理。

签名 ​

ts
function parse<S extends Schema>(schema: S, value: unknown, options?: Options): Infer<S>

参数 ​

参数类型说明
schemaSchema用于校验数据的 Schema
valueunknown任意数据
optionsOptions{ all?: boolean } —— 与 validate 相同

返回值 ​

清洗后的、带类型的数据 —— 与 validate 的 result.data 相同。

抛出 ​

示例 ​

Express ​

ts
import { parse, ValidationError } from 'tinyval';

app.post('/users', (req, res) => {
  try {
    const user = parse(CreateUser, req.body);
    // user 已校验且带有类型
  } catch (e) {
    if (e instanceof ValidationError) return res.status(422).json({ errors: e.errors });
    throw e;
  }
});

环境变量 ​

ts
const env = parse(
  object({
    PORT: optional(coerce.number(), 3000),
    DATABASE_URL: string(),
    DEBUG: optional(coerce.boolean(), false),
  }),
  process.env,
);
// 缺少 DATABASE_URL 时,应用会在启动时给出明确的错误

另请参阅 ​