I Typescript, hvordan bruke en funksjon før den er erklært?


Jeg vil erklære en funksjon, sende den som en håndterer, og deretter definere den, koden min ser slik ut:

type authenticateHandler = (req: Restify.Request, res: Restify.Response) => any;
server.post("/authentication", authenticateHandler);
server.post("/v1/authentication", authenticateHandler);

const authenticateHandler: authenticateHandler = (req: Restify.Request, res: Restify.Response) => { ... };

Jeg får denne feilen når jeg sender funksjonen på linje 2, hva gjør jeg feil?

TS2448: Variabel med blokk-scope 'authenticateHandler' brukt før deklarasjonen

Svar #1

Enten erklær din konstante funksjon før den brukes (som advarelsen foreslår).

type AuthenticateHandler = (req: Restify.Request, res: Restify.Response) => any;

const authenticateHandler: AuthenticateHandler = (req: Restify.Request, res: Restify.Response) => { ... };

server.post("/authentication", authenticateHandler);
server.post("/v1/authentication", authenticateHandler);

Eller definer det som en funksjon:

function authenticateHandler(req: Restify.Request, res: Restify.Response) => { ... };

Relaterte artikler