使用 prisma 进行打字稿类型转换
typescript type conversion with prisma
我想使用 Typescipt 和 Prisma ORM 更改我的 'createdAt' 格式。
const post = await prisma.post.find({ where: { id: 1 }})
post.createdAt = moment(post.createdAt)
return post
// Type 'string' is not assignable to type 'Date'
我完全理解为什么会出现这个错误,但我不知道如何有效地解决它。
我现在该怎么办?
每次从数据库调用数据时,我应该做一个新的接口还是自定义类型?
您可以更新 Prisma 客户端为 Post.createdAt
生成的类型定义以适应 moment
对象类型。这就是它的样子
import { Post } from "@prisma/client"; // Prisma client generated definition of Post
type customPost = Omit<Post, 'createdAt'> & {
createdAt: Date | moment.Moment | string // moment constructor returns object of type moment.Moment, so adding that in addition to string.
}
async function foo() {
const post : customPost = await prisma.post.find({ where: { id: 1 }})
post.createdAt = moment(post.createdAt)
return post
}
omit utility用于先擦除createdAt
的原定义,再重新定义
我想使用 Typescipt 和 Prisma ORM 更改我的 'createdAt' 格式。
const post = await prisma.post.find({ where: { id: 1 }})
post.createdAt = moment(post.createdAt)
return post
// Type 'string' is not assignable to type 'Date'
我完全理解为什么会出现这个错误,但我不知道如何有效地解决它。 我现在该怎么办? 每次从数据库调用数据时,我应该做一个新的接口还是自定义类型?
您可以更新 Prisma 客户端为 Post.createdAt
生成的类型定义以适应 moment
对象类型。这就是它的样子
import { Post } from "@prisma/client"; // Prisma client generated definition of Post
type customPost = Omit<Post, 'createdAt'> & {
createdAt: Date | moment.Moment | string // moment constructor returns object of type moment.Moment, so adding that in addition to string.
}
async function foo() {
const post : customPost = await prisma.post.find({ where: { id: 1 }})
post.createdAt = moment(post.createdAt)
return post
}
omit utility用于先擦除createdAt
的原定义,再重新定义