Tengo el error mecanografiado que dice: Variable 'trait' is used before being assigned.
Eso está en pickedTraits.push()
No lo entiendo, declaré el trait y lo asigné al comienzo del ciclo, ¿por qué se queja el mecanografiado?
Funciona cuando lo coloco fuera del ciclo while, pero lo necesito dentro
layers.map((layer) => { let stop = true let trait: TraitInterface while (stop) { trait = utilsService.pickRandomTrait(layer.traits) let reachedMaxmimum = alreadyPicked.findIndex( ({ traitId, appeared }) => trait._id.equals(traitId) && (appeared ?? 0) >= trait.showUp ) if (reachedMaxmimum !== -1) { layer.traits = layer.traits.filter( ({ _id }) => !_id.equals(alreadyPicked[reachedMaxmimum].traitId) ) } else { alreadyPicked.push({ traitId: trait._id, appeared: 1, }) stop = false continue } } pickedTraits.push({ name: trait.name, rarity: trait.rarity, layerName: layer.name, }) return drawingService.addLayer( context, trait.src, size.height, size.width ) })He solucionado el problema con el ! operador de aserción no nulo
let trait!: TraitInterfaceAhora funciona
Aquí está la respuesta: En Typescript, ¿cuál es el ! (signo de exclamación/explosión) al quitar la referencia a un miembro?