最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Node.jsTypeScript 中的存储库模式

网站源码admin33浏览0评论

Node.js/TypeScript 中的存储库模式

Node.js/TypeScript 中的存储库模式

我一直在尝试在 Node.js 和 Typescript 中实现存储库模式,并取得了一些成功。

但是我在尝试定义创建函数时遇到了困难,该函数应该在我的数据库表中创建一个新行。

我的存储库接口定义如下:

export interface BookRepository {
  create(book: Book): Promise<Book | null>
}

Book是我的领域模型,定义如下:

export type Book = {
  id: number
  name: string
  author: string
}

id 是在 Postgres 中使用自动递增值创建的,因此它不是在我的代码中创建的。

问题是当创建 Book 的新对象时,它需要一个 id 字段。

我该如何解决这个问题?我的 API 中确实需要 id,所以我不能排除它。

回答如下:

一种可能的方法是让编译器知道 id 不是参数的一部分:

export interface BookRepository {
  create(book: Omit<Book, 'id'>): Promise<Book | null>
}

这会保留您设计的类型,但可以放松那里的输入合同。

发布评论

评论列表(0)

  1. 暂无评论