<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;"><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;"><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;"><div></div>
            <div><font size="2">I don't think declaring and destructuring formal parameters all at once improves clarity.</font></div><div><font size="2">Once you get beyond a toy example, the parameter list, like a sentence with many phrases, becomes awkward, causing readers  difficulty in following the meaning.<br></font></div><div><font size="2">Technical writing guidelines include the use of concise sentences.<br></font></div><div><font size="2">I opine that this guideline applies to code as well.</font></div><div><br></div><div><font size="2">Your proposed syntax puts the reference to the whole on the left and the destructuring pattern on the right, the opposite of  destructuring assignment.</font></div><div><div><br></div><div><font size="2">The existing meaning of the exclamation mark  is to negate the meaning of what follows.</font></div><div><div><font size="2">That seems an odd choice to overload with the meaning "keep a reference".</font></div><div><div><font size="2">C++ uses the ampersand for declaring a reference. Not everyone knows C++, but at least it has some basis in an existing language.</font></div><div><div><br></div><div><font size="2">If I felt this was needed, my version would look like this:</font></div><div><div><font size="2">```</font></div><div><font size="2">const someMiddlewareFn = ({name} &original, {name: newName} &updated, next) => {</font></div><div><font size="2">```</font></div><div><font size="2"><br></font></div><div><font size="2">However, I like to think of ECMAScript as somewhere near the happy medium on a programming language continuum that puts the terseness of APL at one extreme and the verbosity of COBOL on the other. I think this is an unnecessary nudge in the terse direction.<br></font></div></div></div></div></div></div></div></div></div></body></html>