Allow partial application
Pull Request Test Coverage Report for Build 26
- 0 of 0 changed or added relevant lines in 0 files are covered.
- No unchanged relevant lines lost coverage.
- Overall coverage remained the same at 100.0%
| Totals | |
|---|---|
| Change from base Build 25: | 0.0% |
| Covered Lines: | 12 |
| Relevant Lines: | 12 |
💛 - Coveralls
Ale dlaczego? :P
@mmiszy W tym momencie const x = polishPlurals('a', 'b', 'c') zwróci 'c' - wydaje mi się, że nie jest to oczekiwane zachowanie, ani tym bardziej sensowne zachowanie (bo mógłbym po prostu napisać const x = 'c' xD. Możnaby zwrócić undefined, natomiast ludzie się będą dziwić skąd undefined nagle. Dlatego wydaje mi się, że jeżeli nie psuje to aktualnej funkcjonalności (a nie psuje, jak widać po Travisie) to czemu by nie zwrócić funkcji, która oczekuje parametru liczbowego?
Mi taka składnia wydaje się intuicyjna do budowania komunikatów i pozwala na całkiem wygodną kompozycję, przykład z mojego skryptu wykorzystującego tę libkę:
const existPlural = polishPlurals("jest", "są", "jest");
const devicePlural = polishPlurals("urządzenie", "urządzenia", "urządzeń");
...
const existDeviceCountMessage = devices => `${existPlural(devices)} ${deviceCountMessage(devices)}`;
Ale dokładnie to samo zachowanie osiągniesz używając natywnego bind albo lodasha, więc nie widzę potrzeby powiększania tej biblioteki ogólnodostępnymi utilkami.
Co od liczby parametrów — każdy rozsądny cżłowiek używa TS, który nie pozwoli Ci wywołać funkcji z 3-parametrami :) Jeśli chodzi o czysty JS to można by dodać jakąś asercję, ale też nie widzę sensu.