| field | 설명 | 예제 |
|---|---|---|
| 디렉토리 | camelCase | |
| 파일 | <scalarName>.constant.ts | |
| 스칼라 클래스 | PascalCase | |
| Enum 클래스 | PascalCase | |
| Enum 값 | camelCase | |
camelCase
<scalarName>.constant.ts
PascalCase
PascalCase
camelCase
| method | 설명 |
|---|---|
| via((field) => ({...})) | 타입이 지정된 필드를 가진 클래스를 생성합니다. 콜백은 field() 헬퍼 함수를 받습니다. |
| field(Type) | 단일 필드를 정의합니다. 첫 번째 인수는 타입입니다 (String, Number, Date 등). |
| field(Type, { options }) | 선택적인 두 번째 인수는 기본값, 유효성 검사 등을 위한 옵션 객체입니다. |
타입이 지정된 필드를 가진 클래스를 생성합니다. 콜백은 field() 헬퍼 함수를 받습니다.
단일 필드를 정의합니다. 첫 번째 인수는 타입입니다 (String, Number, Date 등).
선택적인 두 번째 인수는 기본값, 유효성 검사 등을 위한 옵션 객체입니다.
| field | 설명 |
|---|---|
| enumOf(name, values) | 첫 번째 인수는 enum 이름 (dictionary/GraphQL에서 사용됨). 두 번째는 값 배열입니다. |
| camelCase 값 | 항상 enum 값에 camelCase를 사용하세요 (예: "waitPay", "WAIT_PAY" 아님). |
| as const | 더 나은 TypeScript 타입 추론을 위해 값 배열에 'as const'를 추가하세요. |
첫 번째 인수는 enum 이름 (dictionary/GraphQL에서 사용됨). 두 번째는 값 배열입니다.
항상 enum 값에 camelCase를 사용하세요 (예: "waitPay", "WAIT_PAY" 아님).
더 나은 TypeScript 타입 추론을 위해 값 배열에 'as const'를 추가하세요.
| 옵션 | 타입 | 기본값 | 설명 | 예제 |
|---|---|---|---|---|
| default | Any | Function | undefined | 기본 필드 값 (정적 또는 팩토리 함수) | |
| min | Number | - | 최소 숫자 값 | |
| max | Number | - | 최대 숫자 값 | |
| minlength | Number | - | 최소 문자열 길이 | |
| maxlength | Number | - | 최대 문자열 길이 | |
| validate | Function | - | 커스텀 유효성 검사 함수 | |
| example | Any | - | 문서화를 위한 예시 값 | |
기본 필드 값 (정적 또는 팩토리 함수)
최소 숫자 값
최대 숫자 값
최소 문자열 길이
최대 문자열 길이
커스텀 유효성 검사 함수
문서화를 위한 예시 값
| 문제 | 잘못된 예 | 올바른 예 |
|---|---|---|
| Enum 케이스 | enumOf('status', ['ACTIVE']) | enumOf('status', ['active']) |
| 배열 문법 | field(Array<Int>) | field([Int]) |
| 동적 기본값 | { default: dayjs() } | { default: () => dayjs() } |
| 누락된 export | class Status extends enumOf(...) | export class Status extends enumOf(...) |
| 선택적 필드 | field(ID, { nullable: true }) | field(ID).optional() |
