Tok Object.values(…)

Nástroje pro psaní v JavaScriptu, jako je Flow a TypeScript, se staly populárními v aplikacích JavaScript všech velikostí. Jak jsem zmínil v našem podcastu pro psaní Script &Style Show, psaní je skvělý způsob, jak implicitně implementovat dokumentaci a ověřování. Flow však není vždy snadné zdokonalit a Object.values byla pro mě bolestným bodem.

Při použití Flow Object.values může způsobit následující chybu:

Nelze volat Object.values(…).map s funkcí vázanou na callbackfn, protože vlastnost {prop} chybí ve smíšeném [1] v prvním argumentu.

Důvodem této chyby je Object.values() může vrátit jakýkoli typ hodnoty. Jedním ze způsobů, jak překonat tuto nepříjemnost, je použít následující:

...(Object.values(whatever): any)

Pomocí any typ není nikdy ideální, ale poskytuje typ s Object.values pomůže uspokojit Flow. Nakonec to dává smysl, že Object.values není důvěryhodný, protože lze vrátit cokoli, ale je třeba použít any je těžká pilulka pro milovníky typů!