Typescript 角度6:检测到循环依赖关系,当需要两者关联时,避免使用循环依赖关系
当我有一个Typescript 角度6:检测到循环依赖关系,当需要两者关联时,避免使用循环依赖关系,typescript,Typescript,当我有一个 Cat的所有者:个人 Person谁拥有pet:Cat 猫 人 希望有一个好的解决方案和模式,而不是解决方案,如: 将两个类合并到同一个文件中 a 别告诉我typescript编译器没有考虑这种情况:$我发现我的错误是在Person类中创建了Cat的实例,如果Person类中创建了Cat的实例 因此,为了避免这种明显由创建 cat => which creates a Person => which creates a Cat => which create
的所有者:个人Cat
谁拥有Person
pet:Cat
- 将两个类合并到同一个文件中
- a
别告诉我typescript编译器没有考虑这种情况:$我发现我的错误是在
Person
类中创建了Cat
的实例,如果Person
类中创建了Cat
的实例
因此,为了避免这种明显由创建
cat => which creates a Person => which creates a Cat => which creates a Person => ad eternam...
我移动了Cat和Person的实例创建
- 换一种方法
- 或者将其传递给构造函数也可以做到这一点 建造商(业主:人){ this.owner=所有者 }
参见示例我发现我的错误是在
Person
中创建了Cat
的实例,在Person
中创建了Cat
的实例
因此,为了避免这种明显由创建
cat => which creates a Person => which creates a Cat => which creates a Person => ad eternam...
我移动了Cat和Person的实例创建
- 换一种方法
- 或者将其传递给构造函数也可以做到这一点 建造商(业主:人){ this.owner=所有者 }
参见示例此
import{Person}from./cat'
beimport{Person}from./Person'
是否可以在stackblitz中重现该问题?我试过了,但它似乎可以正常工作。TypeScript并没有阻止你这么做,你到底是从哪里得到这个错误的?TypeScript类型在编译后消失,因此循环依赖关系消失,只要您不为彼此实例化或使用instanceOf。Thx对所有人来说,帮助我的是指出,当两者的创建者调用另一个的创建时,它会导致循环依赖关系。(见我的答案)这不是应该import{Person}from./cat'
是import{Person}from./Person'
你能在stackblitz中重现这个问题吗?我试过了,但它似乎可以正常工作。TypeScript并没有阻止你这么做,你到底是从哪里得到这个错误的?TypeScript类型在编译后消失,因此循环依赖关系消失,只要您不为彼此实例化或使用instanceOf。Thx对所有人来说,帮助我的是指出,当两者的创建者调用另一个的创建时,它会导致循环依赖关系。(见我的答案)
cat => which creates a Person => which creates a Cat => which creates a Person => ad eternam...