角度6:检测到循环依赖关系,在需要将两者都关联时避免

时间:2019-02-17 13:03:17

标签: typescript

我有

时如何处理打字稿
  • Cat,其中有一个owner: Person
  • 拥有Person
  • pet: Cat

import {Person} from './person'
export class Cat {

    owner: Person

    constructor(){
        this.owner = new Person()
    }

}

人员

import {Cat} from './cat'
export class Person {

    pet: Cat

    constructor(){
        this.pet = new Cat()
    }

}

希望除了解决方法外,还有一个很好的解决方案和模式,例如:

  • 两个类都放在同一个文件中
  • 一个third class

不要说打字稿编译器没有考虑这种情况:$

1 个答案:

答案 0 :(得分:0)

我发现我的错误是在Cat类中创建Person实例,在Person类中创建Cat实例

因此,要避免这种明显是由创建

引起的冗余
cat => which creates a Person => which creates a Cat => which creates a Person => ad eternam...

我移动了Cat and Person的实例创建

  • 使用其他方法
  • 或将其传递给构造函数也可以解决问题

    构造函数(所有者:人){     this.owner = anOwner }

请参见stackblitz示例