Czesc pisze sobie apke w ReactJS i pisze do komponentu ktory najprawdopodobniej bedzie przenoszony z projektu do projektu proptypes. O ile wbudowane protypy sa dosc rozbudowane to jednak musze napisac wlasna funkcje, sama funkcja to banal, ale chcialbym sie dowiedziec czy napisanie takiego kodu nie jest po prostu bledem, poniewaz tworze nowe prototype do typu prostego (boolean) i wydaje mi sie to zle, ale zapytam bardziej doswiadczonych. Oto kod:
Boolean.prototype.throwErr = function(msg) {
if (!this) return new Error(msg);
return null;
}
function keysNumbersPropTypes(errMsg){
return (props,propName) => Object.keys(props[propName]).every( x => parseInt(x) ).throwErr(errMsg);
}
Component.propTypes = {
data:keysNumbersPropTypes('Key in data must be number!'),
};
Wyglada to krotko i zwiezle ale dodaje prototyp do boolean i to mi sie nie podoba.. Wczesniejsza wersja wyglada tak:
function keysNumbersPropTypes(errMsg) {
return (props,propName) => {
const keysAreNumbers = Object.keys(props[propName])
.every( x => parseInt(x) );
if (!keysAreNumbers) return new Error(errMsg);
}
}
Component.propTypes = {
data:keysNumbersPropTypes('Key in data must be number!'),
};