typescript - ¿Cómo agregar tipo/interfaz a la declaración de function()?
Tengo tipos como estos definidos en un archivo separado:
type AddFunc = (a: number, b:number) => number
y los estoy usando para escribir funciones de 'flecha gorda':
const add: AddFunc = (a, b) => a + b
Esto está bien, sin embargo me encontré con un problema al cambiar lo anterior a una declaración de función, es decir
function add(a, b) {
return a + b
}
No estoy seguro, pero ¿hay una manera de reutilizar el tipo AddFunc para lo anterior? El único enfoque que se me ocurrió es hacerlo manualmente como se muestra a continuación, pero me pregunto si puedo reutilizar tipos existentes en su lugar
function add(a: number, b: number): number {
return a + b
}
Respuesta #1
...Me pregunto si puedo reutilizar tipos existentes en su lugar
Tristemente, no realmente. Quiero decir, tú podrías hacer algo como esto (enlace al playground):
function add(...args: Parameters<AddFunc>): ReturnType<AddFunc> {
const [a, b] = args;
return a + b;
}
...pero aunque eso significa que solo tienes que actualizar un lugar (AddFunc) si haces esto con múltiples funciones del mismo tipo, difícilmente es conciso. :-)
Sin embargo, sí ofrece un buen autocompletado de IDE, etc., gracias al tipo de tupla Parameters:
