当前位置: 首页 > 知识库问答 >
问题:

interface - 深入理解 Type 和 Interface 在 Prisma 中的实现关系?

拓拔霄
2024-02-21


一直认为implements只能实现interface,今天看到某个开源项目,prisma+nest,通过prisma的类型来定义entity,发现type也能实现,type不是仅仅是一个类型别名吗?
!

共有2个答案

宗政楚
2024-02-21

这个问题有人问过, 也回答了, 不知你们什么关系:

https://segmentfault.com/q/1010000044643286

原回答:

在 TS 中,implements操作只是为class提供一种类型约束,没有其他作用,所以,主要是符合class结构的类型都是可以被implements的。所以除了interface之外,type也可以进行implements。但因为 JS 中引入class是照着 OOP 来做的,所以在需要implements时,使用interface有更强的语意性。
郑狐若
2024-02-21

image.png
在你提到的情况中,使用 Prisma 和 Nest.js,type 可以用来定义实体(entity),并且可以通过 implements 关键字来实现这些类型。这是因为 Prisma 的模型定义使用了一种特殊的语法,它允许使用 type 来定义数据库实体的结构,然后通过 implements 关键字将这些定义应用于特定的类。这种用法的一个常见示例是在使用 Prisma 时定义数据库模型。例如,假设你有一个名为 User 的实体,你可以使用 type 定义它的结构,然后通过 implements 将该结构应用于实际的类。以上是一个简单的示例:UserEntity 是一个使用 type 定义的实体结构,包含 id、name 和 email 字段。然后,User 类通过 implements 关键字将 UserEntity 应用于自身,并实现了该结构定义中的所有字段。这种用法可以使类型定义更具可重用性,并且可以在不同的类之间共享相同的结构定义。这在使用 Prisma 和 Nest.js 这样的框架时特别有用,因为它们可以让你从数据库模型中生成实体类,并且可以通过 implements 关键字将类型定义应用于这些类。总结来说,尽管 implements 关键字通常用于实现接口,但在某些情况下,你也可以使用它来实现类型,特别是在使用 Prisma 和类似框架时定义实体类时。
image.png

 类似资料:
  • 本文向大家介绍深入解析Java接口(interface)的使用,包括了深入解析Java接口(interface)的使用的使用技巧和注意事项,需要的朋友参考一下 Java接口(interface)的概念及使用 在抽象类中,可以包含一个或多个抽象方法;但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”。 接口使用 interface 关键字来声明,可以看做

  • 接口类型 Go 语言有两种接口类型,一种是带有方法的接口,通过 type Name interface {} 声明,表示为 iface 结构体;另一种是不带有任何方法的 interface{} 类型,表示为 eface 结构体。 接口类型的底层实现 【Go 原理】详解 nil 中说道: 在底层,interface 作为两个成员来实现:一个类型和一个值 (type, value)。比如对于 int

  • 问题内容: 自从90年代末在大学期间使用JBuilder以来,我从未接触过Java,所以我有点脱节-无论如何我本周一直在从事一个小型Java项目,并使用Intellij IDEA作为我的IDE ,以便与我的常规.Net开发有所不同。 我注意到它支持添加接口和@interface,什么是@interface,它与普通接口有何不同? 与 我已经做了一些搜索,但找不到大量有用的有关@interface的

  • 本文向大家介绍interface 和 type 到底有什么区别?相关面试题,主要包含被问及interface 和 type 到底有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 interface 和 type 到底有什么区别? 作者:rottenpen

  • 本文向大家介绍golang struct 实现 interface的方法,包括了golang struct 实现 interface的方法的使用技巧和注意事项,需要的朋友参考一下 golang中,一般strcut包含 interface类型后,struct类型都需要实现 interface导出的接口,从而成为相应的 interface接口类。 实际上,struct包含interface之后,并不需

  • interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服。 什么是interface 简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为。 我们前面一章最后一个例子中Student和Employee都能SayHi,虽然他们的内部实现不一样,