Skip to content

类型定义

node-mybatis-plus 导出的核心 TypeScript 类型定义。

Page<T>

分页查询结果对象。

ts
interface Page<T> {
  records: T[]
  total: number
  page: number
  size: number
  pages: number
}
字段类型说明
recordsT[]当前页数据列表
totalnumber总记录数
pagenumber当前页码
sizenumber每页条数
pagesnumber总页数,计算方式:Math.ceil(total / size)

EntityMeta

实体元数据,由 @Table 装饰器生成,描述实体类与数据库表的映射关系。

ts
interface EntityMeta {
  tableName: string
  columns: ColumnMeta[]
  idColumn: ColumnMeta | null
  target: Function
}
字段类型说明
tableNamestring数据库表名
columnsColumnMeta[]所有列的元数据列表
idColumnColumnMeta | null主键列元数据,未定义 @Id 时为 null
targetFunction实体类的构造函数引用

ColumnMeta

列元数据,描述实体属性与数据库列的映射关系。

ts
interface ColumnMeta {
  propertyName: string
  columnName: string
  isPrimary: boolean
  idType?: 'auto' | 'uuid' | 'snowflake' | 'input'
  exist: boolean
}
字段类型说明
propertyNamestring实体类中的属性名
columnNamestring数据库列名
isPrimaryboolean是否为主键
idType'auto' | 'uuid' | 'snowflake' | 'input'主键生成策略,仅主键列有效
existboolean是否映射到数据库列,false 表示虚拟字段

SqlNode

SQL AST 节点联合类型,表示四种 SQL 操作的结构化描述。

ts
type SqlNode = SelectNode | InsertNode | UpdateNode | DeleteNode

SelectNode

ts
interface SelectNode {
  type: 'select'
  table: string
  columns: string[]
  where: ConditionGroup | null
  orderBy: OrderByItem[]
  groupBy: string[]
  having: ConditionGroup | null
  limit: { offset: number; count: number } | null
}
字段类型说明
type'select'节点类型标识
tablestring表名
columnsstring[]查询列,空数组表示 SELECT *
whereConditionGroup | nullWHERE 条件组
orderByOrderByItem[]排序项列表
groupBystring[]分组列列表
havingConditionGroup | nullHAVING 条件组
limit{ offset: number; count: number } | null分页参数

InsertNode

ts
interface InsertNode {
  type: 'insert'
  table: string
  columns: string[]
  values: any[][]
}
字段类型说明
type'insert'节点类型标识
tablestring表名
columnsstring[]插入列名列表
valuesany[][]值列表,支持批量插入(多行)

UpdateNode

ts
interface UpdateNode {
  type: 'update'
  table: string
  sets: { column: string; value: any }[]
  where: ConditionGroup | null
}
字段类型说明
type'update'节点类型标识
tablestring表名
sets{ column: string; value: any }[]SET 子句列表
whereConditionGroup | nullWHERE 条件组

DeleteNode

ts
interface DeleteNode {
  type: 'delete'
  table: string
  where: ConditionGroup | null
}
字段类型说明
type'delete'节点类型标识
tablestring表名
whereConditionGroup | nullWHERE 条件组

Condition

单个条件表达式。

ts
interface Condition {
  column: string
  op: '=' | '!=' | '>' | '>=' | '<' | '<=' | 'LIKE' | 'IN' | 'NOT IN' | 'BETWEEN' | 'IS NULL' | 'IS NOT NULL'
  value?: any
  value2?: any
}
字段类型说明
columnstring列名
opstring操作符
valueany条件值,IS NULL / IS NOT NULL 时无需提供
value2any第二个值,仅 BETWEEN 操作符使用

ConditionGroup

条件组,支持 AND / OR 逻辑组合,可嵌套。

ts
interface ConditionGroup {
  logic: 'AND' | 'OR'
  items: (Condition | ConditionGroup)[]
}
字段类型说明
logic'AND' | 'OR'组内条件的逻辑关系
items(Condition | ConditionGroup)[]条件列表,支持嵌套条件组

OrderByItem

排序项。

ts
interface OrderByItem {
  column: string
  direction: 'ASC' | 'DESC'
}
字段类型说明
columnstring排序列名
direction'ASC' | 'DESC'排序方向

TransactionContext

事务上下文,用于编程式事务中手动控制提交和回滚。

ts
interface TransactionContext {
  connection: Connection
  commit(): Promise<void>
  rollback(): Promise<void>
}
字段/方法类型说明
connectionConnection事务绑定的数据库连接
commit()Promise<void>手动提交事务
rollback()Promise<void>手动回滚事务