Sé que puedo crear una función:
const fn = () => {}
Y sé que puedo adjuntarle una propiedad:
fn.a = 'a'
¿Puedo usar algún tipo de sintaxis literal de objeto para hacer lo que hice anteriormente en una declaración?
Estoy pensando en algo como:
const fn = { (): {}, a: 'a' }
Podrías hacerlo en una declaración como esta.
const fn = Object.assign(() => {}, { a: 'a' });
¿Qué tal si hacemos una pequeña función de utilidad para lograr eso?
function createFunc(func, props) { Object.keys(props).forEach((key) => (func[key] = props[key])); return func; } const f = createFunc(() => console.log("hello"), { a: "A", b: "B" }); f(); console.log(fa); console.log(fb);