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'
be
import{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...