#me dice esto ahora

1 messages · Page 1 of 1 (latest)

sterile edge
#

@simple sandal aca

simple sandal
#

puedes mostrar el código sin el popup ese?

#

y la definición de Participant

sterile edge
west bloom
#

parece que estas modificando la referencia de particiant que recibes desde el map.

#

trata de clonarlo, y con el clon reasigna

#

clonned[item] = ....

sterile edge
#

No me deja mandar mucho texto(es largo la deficinion de Participant) alguna idea de como enviarlo?

simple sandal
sterile edge
simple sandal
#

ahora lo entiendo, no va a funcionar así porque no todas las propiedades de Participant aceptan un string; en este caso el type del array itemAssets debe cambiar, requieres que sea una unión de las propiedades que vas a manejar ahí

#

dame un minuto y te doy la solución

sterile edge
#

dale, gracias

#

Esto no lo entendi bien:
orque no todas las propiedades de Participant aceptan un string;

simple sandal
#

Tu definición del array dice que es un array de strings cuyos valores pueden ser el nombre de cualquiera de las propiedades de Participant, cierto?

#

y en la línea del error estás asignando un string a participant[item]

#

pero eso no puede ser, porque item puede ser cualquier propiedad de Participant, por ejemplo challenges, pero challenges no es de tipo string sino de tipo Challenges

#

no puedes asignarle un string porque (según el tipado como se encuentra ahora) no puedes garantizar que itemAssets contenga solamente los nombres de las propiedades de Participant que aceptan valores del tipo string

#

no sé si quedó claro

sterile edge
#

Clarisimo

simple sandal
#

entonces la solución es decirle a typescript que ese array solamente puede contener nombres de propiedades que aceptan string

#

o solamente las que se llamen item${number}, desconozco exactamente qué es lo que requieres

sterile edge
#

item${number} esto

#

es lo unico que voy a utilziar en ese array

#

esas propiedades

west bloom
#

prueba tambien cambiando el tipo de itemAssets pero solo con las props que soporten string: ```ts

type Items = keyof Pick<Participant, 'item0' | 'item1' | 'item3'| 'item4'| 'item5' | 'item6'>

const itemAssets: Items[] = [...]

itemAssets.forEach((item) => participant[item] = 'http....' )

simple sandal
#

Yo haría algo así

const itemAssets: Extract<keyof Participant, `item${number}`>[]
sterile edge
#

Excelentee

#

Funciono y entendi el por qué

#

Yo sabia que no tenia que confiar en chatgpt

#

Me pasan donde puedo ver este tipo de cosas, me imagino que es mas avanzado

#

O que tutoriales me recomiendan

#

btw, muchas gracias a ambos!

simple sandal
sterile edge
#

Excelente, les voy a echar un ojo obviamente, muchas gracias y cualquier cosa los vuelvo a molestar

#

Ya que estoy una duda mas: chatgpt me recomendo agregar esto en Participants
[key: string]: any

y me funcionó, a que se debe esto_

west bloom
simple sandal
#

es peligroso, te recomiendo que lo uses solamente cuando comiences a meterte en genéricos muy complejos