You can assign a reference to a function and pass that to a function that expects a callback, and then change that assignment based on incoming data. And if that’s not enough you can create and modify functions at runtime. And you’d have to content with JavaScript’s spread syntax and rest parameters.
But it would only have to be a runtime error (your words) for the code which is dynamically loaded.
Static code will get checked at compile-time, even though the exact function passed as callback depends on the incoming data via a series of if/case statements say, from a dictionary or whatever.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...