Dependencia circular con Angular 2 y SystemJS [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Pueden los módulos externos mecanografiados tener dependencias circulares? 2 respuestas

Tengo un problema que creo que es causado por una dependencia circular. Después de una extensa investigación, no he podido encontrar una solución. Parece relacionado con este problema:TypeError: b no está definido en __extends en TypeScript, pero no me ayudó.

He podido simplificar el problema eneste saqueador.

Básicamente hay 3 clases:

la claseA, que contiene una matriz deAla claseB, que hereda deAla claseF, una fábrica que puede crear unA o unB dependiendo de un valor

El propósito de esto es manejar una lista de parámetros que puede ser dinámica (cadaA es un parámetro y puede ser una matriz) y dondeB es una especialización deA para manejar archivos. Traté de quitar la fábrica, pero solo conA yB Todavía recibo el mismo error:

TypeError: b is undefined Error loading http://localhost:3000/app/main.js

Aquí está el código dea.ts

import { F } from './f';

export class A {
  children: A[]

  constructor(hasChildren: boolean = false) {
    if (hasChildren) {
      for (var i = 0 ; i < 10 ; ++i) {
        let isB = (Math.random() * 2) > 1;
        this.children.push(F.createObject(isB))
      }
    }
  }
}

b.ts

import { A } from './a';

export class B extends A {
}

yf.ts

import { A } from './a'
import { B } from './b'

export class F {
  static createObject(isB: boolean): A {
    if (isB) {
      return new B
    } else {
      return new A
    }
  }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta