Estaba leyendo un código fuente sobre next-firebase-auth.
Estoy confundido acerca de la siguiente sintaxis de código
export const useAuthUser: () => AuthUserContext export const verifyIdToken: (token: string) => Promise<AuthUser>El lado derecho parece una función de flecha. El lado izquierdo está declarando variables. Intuitivamente, estoy pensando que es lo mismo que lo siguiente:
export const useAuthUser = () => AuthUserContextSin embargo, no lo hace. Hice algunas pruebas en la consola Chrome. Aquí está el código
adder : () => (a + b)Cuando presiono enter, muestra
() => (a+b)Pero si escribo sumador, muestra
Uncaught ReferenceError: adder is not definedMiré otras publicaciones aquí. Parece que los dos puntos (:) están relacionados con la anotación de tipo . Entonces, ¿significa que el lado derecho es un tipo o una interfaz? Pero, ¿cómo es un tipo o interfaz de función de flecha? No tiene sentido.
¡Gracias por tu ayuda!
El material después de los dos puntos es el tipo. Como tipo, () => AuthUserContext significa una función que no requiere ningún argumento y que devuelve un AuthUserContext . (token: string) => Promise<AuthUser> Significa una función que requiere un solo argumento que es una cadena y luego devuelve una Promesa que se resolverá en un AuthUser
Las líneas de código que mostraste parecen incompletas. Por lo general, una constante será seguida inmediatamente por una asignación, como en:
export const useAuthUser: () => AuthUserContext = () => { // some code which returns an AuthUserContext }Hice algunas pruebas en la consola Chrome.
La consola solo admite javascript, no mecanografiado