TL;DR
TypeScript のバリデーションライブラリ。TypeScript の型と同じ書き方で型を定義でき、エディタ上の型チェックと実行時の検証の両方に使える。
仕組み
型は、TypeScript の構文に似た文字列で定義する。プラグインやビルドの手順は要らない。検証に失敗すると、何を期待して何を受け取ったかを示すエラーを返す。
定義した型からは、typeof User.infer で TypeScript の型を取り出せる。型に unknown のデータを渡すと、検証済みの値か、エラーのどちらかが返る。エラーかどうかは instanceof type.errors で確かめる。
ArkType は検証の前に型を単純化する。たとえば number > 0 と number >= 10 を組み合わせると、number >= 10 にまとめる。公式サイトでは、実行時の検証が Zod 4 のおよそ 20 倍速いとしている。
例
const User = type({
name: "string",
platform: "'android' | 'ios'",
})
const out = User({ name: "Alan Turing", platform: "enigma" })
if (out instanceof type.errors) console.error(out.summary)
// platform must be "android" or "ios" (was "enigma")