Tengo un método en mi archivo authentication-service.ts que no se exporta correctamente por algún motivo. Así es como se ve el método:
interface AuthResult { httpCode: number; message: string; } function verifyAuth(req: Request): Promise<AuthResult> { return new Promise(async (resolve, reject) => { let verifyResult: AuthResult = { httpCode: 200, message: 'OK' }; const authHeader: string | undefined = req.headers["authorization"]; if (!authHeader) { verifyResult.httpCode = 400; verifyResult.message = 'missing Authorization in headers'; reject(verifyResult); } let service: string | undefined = undefined; if (Object.keys(req.headers).includes("looney-service") && !Array.isArray(req.headers["looney-service"])) { service = req.headers["looney-service"]; } if (!service) { verifyResult.httpCode = 400; verifyResult.message = 'missing Looney-Service in headers'; reject(verifyResult); } if (authHeader && service) { const token: string | null = getTokenFromAuth(authHeader); if (token) { const result: string = await verifyService(service, token).catch(err => { console.log('verifyAuth caught error!', err); return err; }); if (result == 'OK') { verifyResult.httpCode = 200; verifyResult.message = result; resolve(verifyResult); } else { verifyResult.httpCode = 403; verifyResult.message = result; reject(verifyResult); } } else { verifyResult.httpCode = 403; verifyResult.message = 'missing token'; reject(verifyResult); } } }); } export { getServiceConfig, getServicePublicKey, verifyService, genJwt, getTokenFromAuth, AuthResult, verifyAuth }Estoy importando el archivo en el que se encuentra este método así:
import * as auth from './services/authentication-service'
Sin embargo, cuando consuelo log auth , el objeto no contiene el método verifyAuth :
{ getServiceConfig: [Function: getServiceConfig] getServicePublicKey: [Function: getServicePublicKey] verifyService: [Function: verifyService] genJwt: [Function: genJwt] getTokenFromAuth: [Function: getTokenFromAuth] }¿Porqué es eso? TypeScript no se queja de ninguna referencia de tipo, todo eso aparentemente se ha corregido.
Si trato de escribirlo como una clase de clase de export class Auth {} y simplemente suelto todos esos métodos allí, por supuesto, elimino la palabra clave de function y agrego la referencia a this . Todavía tengo un problema con el método de verifyAuth() , en ese caso diría que Property 'verifyAuth' does not exist on type typeof Auth' , what is the deal with this método de verificar Auth?