On this page
Overview
Typia analyzes TypeScript types during compilation and transforms calls such as is, assert, and validate into dedicated runtime functions. The same type information can also drive JSON handling, random data, Protocol Buffer, and LLM function-calling schemas without separately authored validation schemas.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Generate dedicated runtime validators from TypeScript types at build time
Calls such as typia.is<T>() and createIs<T>() are analyzed during compilation and replaced with JavaScript validators specialized for the target type rather than using runtime reflection.
Sources: [1]
Choose is, assert, or validate for different validation results
is returns a boolean, assert throws on invalid input, and validate returns detailed validation information, allowing API boundaries to choose their preferred error-handling model.
Sources: [1]
Reuse type information for JSON, random data, Protobuf, and LLM tooling
The API also generates JSON schemas and safe parse/stringify functions, random values, Protocol Buffer encoders/decoders, and LLM function-calling schemas from TypeScript types.
Sources: [1]
Best fit
Fits TypeScript projects that want runtime validation without duplicating schemas
It is useful when TypeScript types should remain the source of truth and separate validation or serialization schemas would otherwise duplicate domain models, especially in validation-heavy API and backend code.
Sources: [1]
Before adoption
The build chain must use ttsc/ttsx or the bundler plugin
The README explicitly states that stock tsc, ts-node, and tsx do not apply Typia's transform. CLI workflows need ttsc/ttsx, while Vite, Next.js, Webpack, Rollup, esbuild, and similar bundlers use @ttsc/unplugin.
Validate the toolchain together when upgrading TypeScript
The 15.1.0 package declares optional peer support for ttsc >=0.19.2, while the same release's workspace catalog uses ttsc 0.30.x with TypeScript 7.0.x. Test Typia, ttsc, and bundler integration together in CI when compiler versions change.
Official sources
- [1]Typia v15.1.0 README(2026-10-05)
- [2]Typia v15.1.0 package metadata(2026-10-05)
- [3]Typia v15.1.0 workspace toolchain catalog(2026-10-05)
- [4]Typia v15.1.0 release(2026-10-05)
- [5]Typia MIT license(2026-10-05)
Supplemental curator note
Typia is a build-time transformer, not a conventional runtime schema library. As the README states, stock tsc, ts-node, and tsx do not apply the transform; projects must integrate ttsc/ttsx or @ttsc/unplugin for bundlers.
Try it in 3 steps
- 1
Install Typia 15.1.0 with its transform toolchain
Install the required ttsc toolchain using the versions cataloged by the Typia 15.1.0 workspace.
demo=$(mktemp -d "${TMPDIR:-/tmp}/typia.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact typia@15.1.0 && npm install --save-exact --save-dev ttsc@0.30.4 typescript@7.0.2 - 2
Create a validator from a TypeScript type
Define only a TypeScript type and create a
createIs<User>()validator without authoring a separate schema.mkdir -p src && printf "%s\n" "import typia from 'typia';" "type User = {id: number; name: string};" "const isUser = typia.createIs<User>();" "if (!isUser({id: 1, name: 'Ada'})) process.exit(1);" "if (isUser({id: '1', name: 'Ada'})) process.exit(1);" "console.log('validated');" > src/index.ts - 3
Run it through ttsx so the transform is applied
Use the README-required
ttsxrather than stocktsxand confirm the generated validator accepts only the correctly typed value.npx ttsx src/index.ts
Growth
Growth trends · Last 30 days
5,931 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 19
- Open PRs
- 0
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- json
- stringify
- typescript
- fast
- ajv
- checker
- generator
- runtime
- transform
- validator
- type
- random
- Stars
- 5,931
- Forks
- 226
- Watchers
- 17
- Open issues
- 2
- Contributors
- 96
- Owner type
- User
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Oct 2, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Superstruct7,127 Stars
4 shared tag(s) · 2 shared category(s) · Same language
compose small structs to validate JavaScript and TypeScript data at runtime
TypeScript - io-ts6,814 Stars
4 shared tag(s) · 2 shared category(s) · Same language
decode and encode unknown values with codecs while inferring TypeScript types from the same definitions
TypeScript - Runtypes2,699 Stars
4 shared tag(s) · 2 shared category(s) · Same language
validate unknown values with composable runtime types and infer TypeScript types from the same definitions
TypeScript - Ky17,104 Stars
4 shared tag(s) · 1 shared category(s) · Same language
extend Fetch API with concise retries, timeouts, hooks, and JSON handling
TypeScript - ofetch5,360 Stars
4 shared tag(s) · 1 shared category(s) · Same language
add JSON parsing, retries, timeouts, and interceptors to fetch across Node, browsers, and workers
TypeScript - Insomnia40,037 Stars
3 shared tag(s) · 2 shared category(s) · Same language
combine API design, requests, testing, and CI workflows in a desktop client
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.