타입 변환 개요
필드 타입
Entity Prop → TypeScript Type 자동 변환 및 타입 안전성
Nullable 지원
nullable: true → T | null 선택적 null 처리
Array 타입
type[] → T[] 배열 타입 자동 생성
Relation 타입
BelongsToOne → number (FK) 관계 필드 타입 변환
기본 타입 변환
Entity의 각 필드 타입이 TypeScript 타입으로 어떻게 변환되는지 보여줍니다.숫자 타입
| Entity Type | TypeScript Type | 설명 |
|---|---|---|
integer | number | 32bit 정수 |
integer[] | number[] | 정수 배열 |
bigInteger | bigint | 64bit 정수 (큰 숫자) |
bigInteger[] | bigint[] | 큰 정수 배열 |
bigInteger vs integer: ID나 카운트는
integer로 충분하지만,
타임스탬프(milliseconds)나 매우 큰 숫자는 bigInteger를 사용하세요.문자열 타입
| Entity Type | TypeScript Type | 설명 |
|---|---|---|
string | string | 문자열 |
string[] | string[] | 문자열 배열 |
불린 타입
날짜 타입
UUID 타입
TypeScript에는 UUID 전용 타입이 없으므로
string으로 표현됩니다. Zod
validation에서 .uuid()로 형식을 검증합니다.숫자 정밀도 타입
PostgreSQL의 고정밀 숫자를 다루는 두 가지 타입입니다.number vs numeric
| Entity Type | TypeScript Type | PostgreSQL Type | 용도 |
|---|---|---|---|
number | number | real, double precision, numeric | 일반 계산 (부동소수점) |
numeric | string | numeric | 금융 계산 (고정소수점) |
Enum 타입
Entity의 Enum이 TypeScript Union 타입으로 변환됩니다.- 자동완성 지원
- 타입 안전성 보장
- 잘못된 값 컴파일 에러
JSON 타입
복잡한 객체 구조를 JSON으로 저장할 때 사용합니다.json 타입은 id로 지정한 Zod 스키마를 참조합니다. 이 스키마는 {entity} .types.ts에서 직접 정의해야 합니다.Virtual 타입
데이터베이스에 저장되지 않는 계산 필드입니다.Vector 타입
벡터 검색 (pgvector)을 위한 타입입니다.dimensions는 TypeScript 타입에 영향을 주지 않지만, PostgreSQL 스키마와 Zod validation에서 사용됩니다.Relation 타입
Entity 간 관계를 나타내는 필드입니다.BelongsToOne (다대일)
OneToOne (일대일)
HasMany / ManyToMany
HasMany와 ManyToMany는 base 타입에 포함되지 않습니다. Subset을 정의하면
해당 타입이 Subset 타입에 포함됩니다.Nullable 처리
nullable: true는 TypeScript Union 타입으로 변환됩니다.
타입 변환 전체 매핑
모든 Entity Prop 타입과 TypeScript 타입의 매핑표입니다.| Entity Type | TypeScript Type | 비고 |
|---|---|---|
integer | number | 32bit 정수 |
integer[] | number[] | 정수 배열 |
bigInteger | bigint | 64bit 정수 |
bigInteger[] | bigint[] | 큰 정수 배열 |
string | string | 문자열 |
string[] | string[] | 문자열 배열 |
number | number | 부동소수점 |
number[] | number[] | 부동소수점 배열 |
numeric | string | 고정소수점 (문자열로 정밀도 보존) |
numeric[] | string[] | 고정소수점 배열 |
boolean | boolean | 불린 |
boolean[] | boolean[] | 불린 배열 |
date | Date | 날짜 (JSON에서는 string) |
date[] | Date[] | 날짜 배열 |
uuid | string | UUID 문자열 |
uuid[] | string[] | UUID 배열 |
enum | EnumType | Union 타입 |
enum[] | EnumType[] | Union 타입 배열 |
json | CustomType | 커스텀 객체 타입 |
virtual | CustomType | 계산 필드 |
vector | number[] | 벡터 (pgvector) |
vector[] | number[][] | 벡터 배열 |
tsvector | string | 전문 검색 (PostgreSQL) |
BelongsToOne | number | 외래 키 (FK) |
OneToOne (hasJoinColumn) | number | 외래 키 (FK) |
HasMany | - | Base 타입 미포함 |
ManyToMany | - | Base 타입 미포함 |
