DEV Community

Discussion on: Prevent Object Retrieval TypeError with &&

hjess profile image
Howard Jess

I'm in agreement with those opposing this idiom. The Javascript phrase:

obj && obj.prop && obj.prop.send();

is an expression, and (to me at least) should be pure, like a pure function. As used above, this expression is used only for its side effect. I would always prefer to be explicit. I like the proposed optional chaining; but until that's available, write this statement in English:

// pedantic
if (obj && obj.prop && typeof obj.prop.send === 'function') {