portfolios.tools

SQL에서 TypeScript 인터페이스 변환기

지원되는 PostgreSQL CREATE TABLE 정의를 null 허용 여부가 명확하고 숫자 값을 정확하게 표현하는 TypeScript 행 인터페이스로 변환합니다.

SQL 입력

최대 100,000자의 CREATE TABLE 문을 붙여 넣으세요. 지원되지 않는 SQL은 오류로 표시되어 부분 인터페이스를 완전한 결과로 오인하지 않게 합니다.

생성 결과

변환된 테이블: 1

export interface FinancePositions {
  /** Primary key */
  "id": string;
  "ticker": string;
  "shares": string;
  /** Default expression: 'created, reviewed' */
  "note": string | null;
  "metadata": unknown | null;
}

작동 방식

PostgreSQL CREATE TABLE 문을 하나 이상 붙여 넣으세요. 선택적 IF NOT EXISTS, 스키마 이름, 따옴표 식별자, 기본 제공 타입, 정밀도, 기본값, null 제약 조건, 기본 키 및 일반 제약 조건을 지원합니다.

각 테이블의 생성된 인터페이스를 확인하세요. null 허용 열도 `| null` 값 타입을 가진 필수 속성입니다. JSDoc 옵션은 정리된 기본값과 기본 키 메모를 추가합니다.

출력을 쿼리 형태와 드라이버 설정에 맞춰 확인하세요. 일부 열만 선택하는 쿼리는 여기서 표현하는 전체 테이블 행과 다른 형태입니다.

출력을 애플리케이션 타입의 시작점으로 사용하세요. 런타임 검증을 추가하고 프로젝트에서 드라이버별 표현을 조정하세요.

단계별 안내

  1. 지원되는 PostgreSQL 테이블 정의 붙여 넣기
  2. 생성된 행 속성과 값 타입 확인하기
  3. 쿼리와 드라이버 값 표현 확인하기

구체적인 예시

입력 예시: CREATE TABLE finance.positions (id bigint PRIMARY KEY, ticker varchar(12) NOT NULL, shares numeric(12, 4) NOT NULL, note text DEFAULT 'created, reviewed', metadata jsonb);

생성된 행 타입에서 id와 ticker는 필수 문자열, shares는 필수 문자열, note는 null을 허용하는 필수 문자열, metadata는 null을 허용하는 필수 unknown 값입니다. bigint와 numeric은 JavaScript 숫자가 정확한 값을 보존한다고 가정하지 않도록 문자열로 표시합니다.

이 변환기를 사용할 때

이 변환기를 사용해 지원되는 PostgreSQL 테이블 정의를 전체 데이터베이스 행을 위한 시작 타입으로 바꾸세요. null 값과 누락된 속성을 구분합니다.

애플리케이션에서 인터페이스를 사용하기 전에 드라이버와 쿼리 결과에 맞춰 타입 매핑을 확인하세요.

흔한 실수

null 허용 열을 선택적 속성으로 취급하지 마세요. 조회된 행에는 그 열이 포함되며 값은 null일 수 있습니다.

드라이버가 numeric과 bigint를 문자열로 반환한다고 가정하지 마세요. 생성된 인터페이스에 맞게 결과를 설정하거나 변환하세요.

파싱 및 타입 규칙

지원되는 각 테이블에서 괄호와 따옴표 값 바깥의 쉼표를 기준으로 정의를 나눕니다. 각 열의 SQL 타입을 TypeScript 타입에 매핑합니다. 필수 속성을 출력하고 열이 null을 허용하면 `| null`을 추가합니다. 기본 키 열은 null을 허용하지 않습니다. 기본값은 문서에만 사용됩니다.

이 도구는 PostgreSQL CREATE TABLE의 제한된 형식에서 행 인터페이스를 생성합니다. 정확한 numeric과 bigint 값은 문자열로 표시하므로 애플리케이션에서 드라이버를 설정하거나 결과를 변환해야 합니다. 알 수 없는 SQL 타입은 unknown으로 매핑됩니다. JSON과 JSONB도 unknown입니다.

범위와 한계

이 파서는 PostgreSQL CREATE TABLE의 제한된 형식을 지원하며 전체 SQL 문법을 지원하지 않습니다. 기본 테이블 정의, 스키마 및 따옴표 이름, 중첩 표현식, 일반 제약 조건, 기본값, 기본 키를 처리합니다. 지원되지 않는 문이나 옵션은 부분 인터페이스 없이 오류를 반환합니다. ALTER TABLE, 뷰, CREATE TABLE AS, 파티션, 상속 및 PostgreSQL 전체 문법은 지원하지 않습니다. numeric과 bigint는 문자열로 출력되며 드라이버 설정 또는 변환이 필요합니다. 날짜는 문자열로 표시됩니다. 알 수 없는 타입은 unknown입니다. 속성은 전체 행을 나타내며 선택적 삽입 필드나 부분 쿼리 결과가 아닙니다. 생성 타입은 런타임 데이터를 검증하지 않습니다. 입력은 최대 100,000자입니다.

주요 용어

행 인터페이스
데이터베이스 행 인터페이스는 null 값을 포함해 전체 행에 반환되는 속성을 설명합니다.
null 허용 열
null 허용 열은 null 값을 허용합니다. 전체 행에서 해당 속성이 빠진다는 뜻은 아닙니다.
기본 키
기본 키는 행을 고유하게 식별하며 PostgreSQL에서 그 열은 null을 포함할 수 없습니다.

관련 작업

지원되는 PostgreSQL 테이블 정의를 TypeScript 행 타입으로 변환합니다. HTTP 요청과 응답을 설명하려면 별도의 API 스키마 도구를 사용하세요.

이 변환기는 데이터베이스 행의 형태를 다룹니다. 런타임 검증 코드나 데이터베이스 접근 함수는 생성하지 않습니다.

FAQ

어떤 SQL 문을 읽을 수 있나요?

파서는 지원되는 CREATE TABLE 문을 읽고 열과 제약 조건 정의를 최상위 구분자에서만 나눕니다. 타입 정밀도, 중첩 표현식, 따옴표로 묶인 기본값 안의 쉼표는 분리하지 않습니다. 열 이름과 타입, null 허용 여부, 기본값, 기본 키를 사용해 테이블마다 인터페이스 하나를 만듭니다.

null 허용 열과 기본 키는 어떻게 표시되나요?

null 허용 열도 조회된 행에 포함되므로 속성은 필수이며 값 타입에 null이 포함됩니다. NOT NULL 열과 기본 키에는 null이 포함되지 않습니다. 기본값은 삽입에 적용되며 조회된 행에 속성이 존재하는지 여부를 바꾸지 않습니다.

SQL 타입은 TypeScript에서 어떻게 표현되나요?

작은 정수와 부동 소수점 타입은 number로 변환됩니다. bigint, numeric, decimal, money는 정확한 값을 유지하도록 string으로 변환됩니다. 데이터베이스 드라이버가 이 값을 문자열로 반환하도록 설정하거나 생성된 타입을 사용하기 전에 변환하세요. JSON은 스칼라, 배열, 객체 또는 null을 포함할 수 있으므로 JSON과 JSONB는 unknown으로 변환됩니다. 날짜와 시간 타입은 string으로 변환됩니다.

지원 범위 밖의 문법은 무엇인가요?

파서는 선택적 IF NOT EXISTS, 스키마, 따옴표 식별자, 열 정의, 일반 제약 조건, 기본값, 기본 키가 포함된 제한된 PostgreSQL CREATE TABLE 형식을 지원합니다. 지원하지 않는 후행 옵션이나 다른 문은 부분 결과를 반환하지 않고 오류로 처리합니다. ALTER TABLE, 뷰, CREATE TABLE AS, 파티션, 상속, PostgreSQL의 모든 타입과 제약 조건 형식은 처리하지 않습니다.

JSDoc 옵션은 무엇을 추가하나요?

JSDoc을 켜면 열의 기본값과 기본 키 상태에 대한 안전한 요약을 추가합니다. 줄바꿈을 정리하고 주석 종료 문자를 무력화해 SQL 입력이 생성된 주석을 닫지 못하게 합니다. 이 옵션은 문서만 바꾸며 TypeScript 속성 타입은 바꾸지 않습니다.

관련 도구

애플리케이션에 필요한 경우 데이터베이스 행 인터페이스와 별도의 API 스키마 및 런타임 검증 계층을 함께 사용하세요.