【问题标题】:typescript type conversion with prisma使用 prisma 的 typescript 类型转换
【发布时间】:2021-10-15 18:14:56
【问题描述】:

我想使用 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'

我完全理解为什么会出现这个错误,但我不知道如何有效地解决它。 我现在该怎么办? 每次从 db 调用数据时,我应该创建一个新接口还是自定义类型?

【问题讨论】:

    标签: typescript types prisma


    【解决方案1】:

    您可以更新 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的原始定义。

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 2017-12-28
      • 2019-08-22
      • 2020-06-07
      • 2022-01-26
      • 2012-10-23
      • 1970-01-01
      • 2022-01-16
      • 2018-09-21
      相关资源
      最近更新 更多