javascript - 我无法理解传递给 TypeORM 关系装饰器的回调语法
问题描述
我遇到了可以使用各种装饰器定义的 TypeORM 中的关系。例如 -
@OneToOne(type => Profile, profile => profile.user)
@JoinColumn()
profile: Profile;
我无法理解回调type => Profile
。我在网上搜索了它的含义,但无济于事。我也知道我们也可以通过() => Profile
,但我想知道它是什么。
解决方案
浏览库的源代码,有一个特殊的注释可以帮助您解决困惑:
由于语言细节和递归引用类的问题,这种类型起作用。
在我的解释中,关系类型参数被包装在一个函数中,因此您可以处理任何关系场景,包括自引用。例子:
@Entity
class User {
@OneToMany(type => User, user => user.directReports)
@JoinColumn()
manager: User;
@ManyToOne(type => User, user => user.manager)
directReports: User[];
}
在这种情况下,使用与User
类型装饰器相同的类可能会导致错误。函数 wrap 解决了这个问题。
我找不到type
该回调的参数的任何用法,正如您所指出的,它也可以是未定义的。正如评论中所指出的,它可能是一个上下文关键字,因此您的代码更具可读性。
推荐阅读
- python - 我应该命名 for 循环的 i 变量部分吗?
- django - 如何要求用户在 django 中登录
- javascript - 如何从地图中删除前一个圆圈?
- memory - FreeRTOS 堆放置在 DDR 的哪个内存区域(Zynq 700 器件)?
- c - 条件问题
- jquery - 在 onmouseover="swapImage(); 上淡入/淡出
- c++ - 尝试使用公钥验证签名时出现 BERDecodeError
- r - R Shiny - 在 Shiny 模块中使用“session$sendCustomMessage”设置输入值
- paypal - 是否可以使用 paypal 或 Stripe 进行自动付款
- c++ - 循环依赖对象的 C++ 移动构造函数/移动赋值运算符