Skip to content
On this page

TypeScript Interfaces

typescript

How to represent date/time types

Example Output ​

Generated from the pet-store sample schema:

typescript
// Generated by @sqldoc/templates/typescript -- DO NOT EDIT

export interface Adoption {
  id: number
  petId: number
  ownerId: number
  adoptedAt: Date
  adoptionFee: string
}

export interface AdoptionsAuditLog {
  id: number
  tableName: string
  operation: string
  oldData?: unknown
  newData?: unknown
  changedAt: Date
}

export interface Category {
  id: number
  name: string
  description?: string
}

export interface LegacyInventory {
  id: number
  itemName?: string
  oldSku?: string
  quantity?: number
}

export interface Location {
  id: number
  name: string
  address: string
  city: string
  zip?: string
}

export interface MedicalRecord {
  id: number
  petId: number
  visitDate: string
  diagnosis: string
  treatment?: string
  vetName?: string
}

export interface Owner {
  id: number
  name: string
  email: string
  phone?: string
  createdAt?: Date
}

export interface Pet {
  id: number
  categoryId?: number
  name: string
  sku: string
  price: string
  internalNotes?: string
  status: string
  createdAt?: Date
}

export interface Review {
  id: number
  petId: number
  ownerId: number
  rating: number
  body?: string
  locationId?: number
  createdAt?: Date
}

export interface StaffAuditLog {
  id: number
  tableName: string
  operation: string
  oldData?: unknown
  newData?: unknown
  changedAt: Date
}

Usage ​

Add to your sqldoc.config.ts:

typescript
export default {
  dialect: 'postgres',
  schema: ['./schema.sql'],
  codegen: [
    {
      template: 'typescript',
      output: './generated/types.ts',
      config: {
        // See configuration options below
      },
    },
  ],
}

Then run:

bash
sqldoc codegen