polish-plurals icon indicating copy to clipboard operation
polish-plurals copied to clipboard

Allow partial application

Open allgreed opened this issue 7 years ago • 4 comments

allgreed avatar Oct 22 '18 22:10 allgreed

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 Coverage Status
Change from base Build 25: 0.0%
Covered Lines: 12
Relevant Lines: 12

💛 - Coveralls

coveralls avatar Oct 22 '18 22:10 coveralls

Ale dlaczego? :P

typeofweb avatar Oct 23 '18 19:10 typeofweb

@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)}`;

allgreed avatar Oct 25 '18 14:10 allgreed

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.

typeofweb avatar Oct 25 '18 15:10 typeofweb