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ů!