Checking if a given value matches the schema. This is different to parsing because it doesn't return a new value.
import * as v from "valibot";
import { personSchema } from "./schemas";
if (v.is(personSchema, data)) {
// data is narrowed to Person
}
Optimizations
| Library | Version | Downloads (/wk) | Optimizations | Mean | Compare | ||||
|---|---|---|---|---|---|---|---|---|---|
typia (createIs) | Code snippet(Commented code is not benchmarked) | 11.0.3 | 239K | Precompiled | 49 ns | ||||
typebox (compile) | Code snippet(Commented code is not benchmarked) | 1.0.81 | 165K | JIT | 50 ns | 1.01x | |||
typia (is) | Code snippet | 11.0.3 | 239K | Precompiled | 65 ns | 1.32x | |||
ajv (compile) | Code snippet(Commented code is not benchmarked) | 8.18.0 | 201M | JIT | 84 ns | 1.71x | |||
ajv (validate) | Code snippet | 8.18.0 | 201M | JIT | 124 ns | 2.53x | |||
effect | Code snippet(Commented code is not benchmarked) | 3.19.17 | 7M | None | 708 ns | 14.38x | |||
valibot | Code snippet | 1.2.0 | 5.6M | None | 715 ns | 14.52x | |||
arktype | Code snippet | 2.1.29 | 681K | JIT | 750 ns | 15.24x | |||
typebox | Code snippet | 1.0.81 | 165K | None | 3 μs | 56.69x | |||
joi | Code snippet | 18.0.2 | 15M | None | 3 μs | 71.07x | |||
yup | Code snippet | 1.7.1 | 9M | None | 93 μs | 1_891.56x | |||