📝 输入SQL DDL语句
📁 拖拽.sql文件到此处
支持.sql文件,所有解析在浏览器本地完成
✨ TypeScript接口
SQL转TypeScript接口生成器能做什么?
本工具可以将SQL的CREATE TABLE DDL语句自动转换为TypeScript接口定义,省去手动编写接口的繁琐工作。支持MySQL和PostgreSQL的常见数据类型,自动处理nullable字段、默认值、主键约束等,生成的代码可直接用于TypeScript项目中。
核心功能
- 智能类型映射:自动将SQL数据类型映射为TypeScript类型,如INT→number、VARCHAR→string、BOOLEAN→boolean、TIMESTAMP→Date等
- Nullable处理:自动识别NOT NULL约束,支持可选属性(?:)和联合类型(|null)两种风格
- 多表支持:一次粘贴多个CREATE TABLE语句,批量生成所有表的接口定义
- 自定义选项:可配置接口命名前缀、export关键字、字段注释、日期类型等
- 文件导入:支持拖拽.sql文件直接导入解析
使用教程
1. 在输入框中粘贴CREATE TABLE语句,或点击"加载示例"按钮填充示例SQL。2. 根据项目需求调整选项:是否添加export关键字、nullable字段的处理方式、接口命名前缀等。3. 点击"生成接口"按钮,或输入时实时预览TypeScript接口代码。4. 点击"复制代码"将结果复制到剪贴板,或点击"下载.ts文件"直接保存。支持Ctrl+Enter快捷键快速生成。
应用场景
场景1:全栈开发者
设计好数据库表结构后,快速生成TypeScript接口定义,保持前后端类型一致性,避免手动编写时的遗漏和拼写错误。
场景2:ORM迁移
从现有数据库导出DDL后,批量生成TypeScript接口,为TypeORM、Prisma等ORM框架提供类型基础。
场景3:API开发
根据数据库schema生成接口,直接用于Express/NestJS等框架的请求/响应类型定义,提高代码可维护性。
扩展知识
SQL到TypeScript的类型映射并非一一对应。SQL的DECIMAL/NUMERIC在TS中通常映射为number,但精确计算场景可能需要bigint或decimal.js库。TIMESTAMP类型可映射为Date或string(ISO格式),取决于项目是否使用日期对象。JSON类型映射为any虽然方便但丢失类型安全,建议根据实际数据结构手动细化。MySQL的UNSIGNED修饰符在TS中没有直接对应,通常忽略。
常见问题 (FAQ)
支持哪些SQL数据类型的映射?
支持INT/BIGINT→number, VARCHAR/TEXT→string, BOOLEAN→boolean, DATE/TIMESTAMP→Date|string, JSON→any, DECIMAL→number等常见类型映射,并支持自定义映射规则。
如何处理NULLABLE字段?
工具自动识别NOT NULL约束,默认nullable字段使用可选属性(?:)语法。勾选"nullable用|null"选项则改为联合类型语法。
支持多个CREATE TABLE语句吗?
支持。粘贴多个CREATE TABLE语句,工具会为每个表生成独立的TypeScript接口,并按表名命名接口。
生成的接口可以直接在项目中使用吗?
可以。生成的TypeScript接口符合标准语法,可直接复制到.ts文件中使用。建议根据项目需求调整类型映射(如Date改为string)。
支持MySQL和PostgreSQL的语法差异吗?
工具兼容MySQL和PostgreSQL的常见DDL语法,包括AUTO_INCREMENT、SERIAL、UNSIGNED等特有修饰符,并自动忽略不影响的语法差异。
SQL语句会发送到服务器吗?
不会。所有SQL解析和TypeScript生成都在浏览器本地完成,不发送任何数据到服务器,可放心处理包含敏感表结构的SQL。