Repolode
samchon

samchon/typia

순수 TypeScript 타입을 런타임 검증기, JSON 직렬화기, Protocol Buffer 코덱 및 랜덤 데이터 생성기로 컴파일하는 TypeScript transformer입니다.

대체할 수 있는 제품:class-validator

스타
5,963
포크
233
열린 이슈
5
마지막 커밋
어제

어떤 프로젝트인가요?

typia는 빌드 시점에 TypeScript 타입을 런타임 함수로 변환합니다. typia.is<T>() 또는 typia.assert<T>() 같은 타입을 작성하면 transformer가 컴파일 중에 T를 분석해 전용 검사기를 생성하므로, 별도의 스키마 정의나 런타임 리플렉션이 필요하지 않습니다.

이 라이브러리는 여러 기능을 제공합니다. 런타임 검증기(is, assert, validate), 스키마 생성 기능과 더 빠른 stringify 및 parse 함수를 제공하는 확장 JSON 계층, encode와 decode 기능을 갖춘 Protocol Buffer 메시지 생성기, 그리고 랜덤 데이터 생성기가 포함됩니다. 또한 클래스 타입을 기반으로 tool 스키마를 만들고 모델 출력을 검증하거나 파싱하는 LLM function-calling 모듈도 제공합니다.

typia는 일반 tsc, ts-node 또는 tsx 대신 ttsc 툴체인을 사용해야 합니다. 기본 도구들은 transform을 적용하지 않기 때문입니다. Vite, Next.js, Webpack, Rollup 및 esbuild용 @ttsc/unplugin을 통해 번들러와 통합할 수도 있습니다.

핵심 기능

  • 01빌드 시점에 순수 TypeScript 타입으로부터 스키마 파일 없이 타입 검사기를 생성합니다.
  • 02런타임 검증을 위한 is, assert 및 validate 함수를 제공합니다.
  • 03JSON Schema를 생성하고 타입 안전한 stringify 및 parse 함수를 제공합니다.
  • 04TypeScript 타입을 기반으로 Protocol Buffer 메시지를 인코딩하고 디코딩합니다.
  • 05LLM 도구용 function-calling 스키마를 생성하고 모델 출력을 검증합니다.
  • 06TypeScript 타입을 기반으로 랜덤 데이터를 생성합니다.

활용 사례

  • 별도의 스키마를 작성하지 않고 TypeScript 백엔드에서 API 요청 본문을 검증합니다.
  • 알려진 타입을 빠르게 JSON으로 직렬화합니다.
  • TypeScript 클래스를 바탕으로 LLM function-calling용 tool 정의를 만듭니다.
  • 기존 타입으로 테스트 fixture를 생성합니다.

빠른 시작

  1. 1

    typia와 ttsc/TypeScript 툴체인을 설치합니다

    npm i typia npm i -D ttsc typescript
  2. 2

    ttsc로 프로젝트를 빌드합니다(기본 tsc는 변환을 적용하지 않습니다)

    npx ttsc
  3. 3

    ttsx로 스크립트를 직접 실행합니다

    npx ttsx src/index.ts

사용 전 알아둘 점

  • ttsc 툴체인이 필요합니다. 기본 tsc, ts-node, tsx로는 변환을 적용할 수 없습니다.
  • 번들러에서 사용하려면 별도의 @ttsc/unplugin 패키지가 필요합니다.

포함된 컬렉션

토픽

자주 묻는 질문

typia은(는) 무엇인가요?
순수 TypeScript 타입을 런타임 검증기, JSON 직렬화기, Protocol Buffer 코덱 및 랜덤 데이터 생성기로 컴파일하는 TypeScript transformer입니다. typia는 빌드 시점에 TypeScript 타입을 런타임 함수로 변환합니다. typia.is<T>() 또는 typia.assert<T>() 같은 타입을 작성하면 transformer가 컴파일 중에 T를 분석해 전용 검사기를 생성하므로, 별도의 스키마 정의나 런타임 리플렉션이 필요하지 않습니다.
typia은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
typia은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
typia은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. typia의 마지막 커밋은 2026년 11월 6일입니다.
typia은(는) 어디에 사용할 수 있나요?
별도의 스키마를 작성하지 않고 TypeScript 백엔드에서 API 요청 본문을 검증합니다. 알려진 타입을 빠르게 JSON으로 직렬화합니다. TypeScript 클래스를 바탕으로 LLM function-calling용 tool 정의를 만듭니다. 기존 타입으로 테스트 fixture를 생성합니다.
typia는 어떻게 설치하나요?
typia와 ttsc/TypeScript 툴체인을 설치합니다: npm i typia npm i -D ttsc typescript ttsc로 프로젝트를 빌드합니다(기본 tsc는 변환을 적용하지 않습니다): npx ttsc ttsx로 스크립트를 직접 실행합니다: npx ttsx src/index.ts
typia은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/samchon/typia

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

한 번의 선언으로 데이터를 검증·파싱·인코딩하고, JSON·폼 데이터·Protobuf 와이어를 지원하는 TypeScript 및 ReScript 스키마 라이브러리입니다.

494+1 이번 주15TypeScriptMIT활발히 관리됨업데이트 3일 전

하나의 .skir 파일에서 TypeScript, Python, Java, Go, C++ 등 다양한 언어용 타입 안전 데이터 모델과 RPC 코드를 생성하는 선언형 스키마 언어입니다.

318+2 이번 주10TypeScriptMIT활발히 관리됨업데이트 11일 전