Sagen wir, ich habe den folgenden Code:Ramda.js zupfen (key) Typ vs nativer Karte
const results = //some complex datastructure generated by a third party api call
const reducedList = results.map((item) => item.awesome_key)
.map((awesomeKeyList) => awesomeKeyList
.reduce((memo, awesomeKey) => {//stuff},{})))
Dieser Code funktioniert wie ein Charme. Nun sage ich entschieden Ramda für die erste Karte durch zupfen zu verwenden wie so:
import R from Ramda;
R.pluck('awesome_key', results)
.map((awesomeKeyList) => awesomeKeyList
.reduce((memo, awesomeKey) => {},{})))
Dies wird nicht mit:
Property 'reduce' does not exist on type '{}'.
Die Typen auf Ramda.pluck sind:
pluck<T>(p: string|number, list: any[]): T[];
pluck(p: string|number): <T>(list: any[]) => T[];
Was ist mit diesen Typen verhindert mich auf diese Weise zu reduzieren?
Ein Beispiel (vereinfacht) Struktur:
things: [
{
awesome_key: [{
long_name: 'string',
short_name: 'string',
types: {
0: 'string from set',
1?: 'string'
}
}]
other_fields not relevant here
}
]
Sie teilen einige ([vereinfachte] (https://stackoverflow.com/help/mcve)) Daten, die das Problem aufzeigt? –
Daten von Drittanbieter API hinzugefügt wie angefordert –
Ich bekomme die gleichen Ergebnisse mit beiden Format. Es gibt also wahrscheinlich etwas Bestimmtes für deinen Code oder deine Daten. –