No entiendo por qué Typescript no infiere los nombres de mis propiedades en el siguiente ejemplo.
Ejemplo 1: puede inferir el tipo y el nombre de la propiedad
//In this example TS recognizes the return type of my first map as {teamId:string,teamCode:string}[] const foo = something.map(ele=> { return { teamId: someDict[ele.blah.id.entityId].team.id.entityId, teamCode: someDict[cfg.blah.id.entityId].code, } }).filter(ele => !currentTeamIds.includes(ele.teamId)).map(ele => ele.teamCode)Ejemplo 2: no se puede inferir el tipo y el nombre de la propiedad cuando el filtro se coloca en una declaración diferente
//In this example TS marks foo as any instead of the type mentioned above. const foo = something.map(ele=> { return { teamId: someDict[ele.blah.id.entityId].team.id.entityId, teamCode: someDict[cfg.blah.id.entityId].code, } }) const bar = foo.filter(ele => !currentTeamIds.includes(ele.teamId)).map(ele => ele.teamCode)Pensé que los dos ejemplos serían equivalentes. ¿Por qué TS no puede inferir mis tipos cuando separo el filtro y lo rompo de la cadena?