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 respuestasTengo 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 deA
la claseB
, que hereda deA
la claseF
, una fábrica que puede crear unA
o unB
dependiendo de un valorEl 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
}
}
}