优化 API中data的类型声明

This commit is contained in:
tone
2024-09-25 13:15:32 +08:00
parent 96d212a973
commit 1091bfe086
4 changed files with 14 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
import { API } from "@lib/API/API"; import { API, RequestData } from "@lib/API/API";
import MountIP, { MountIPRequestData } from "@lib/APIMiddleware/MountIP"; import MountIP, { MountIPRequestData } from "@lib/APIMiddleware/MountIP";
import MountUserAgent, { MountUserAgentRequestDate } from "@lib/APIMiddleware/MountUserAgent"; import MountUserAgent, { MountUserAgentRequestDate } from "@lib/APIMiddleware/MountUserAgent";
import Unbind from "@lib/APIMiddleware/Unbind"; import Unbind from "@lib/APIMiddleware/Unbind";
@@ -10,7 +10,7 @@ class GetTest extends API {
super('GET', '/test', MountIP, MountUserAgent, Unbind); super('GET', '/test', MountIP, MountUserAgent, Unbind);
} }
public async onRequset(data: MountIPRequestData | MountUserAgentRequestDate, res: Response): Promise<void> { public async onRequset(data: MountIPRequestData & MountUserAgentRequestDate, res: Response): Promise<void> {
this.logger.info(`request ip: ${data._ip} useragent: ${data._userAgent}`) this.logger.info(`request ip: ${data._ip} useragent: ${data._userAgent}`)
res.json(ServerStdResponse.OK); res.json(ServerStdResponse.OK);
} }

View File

@@ -5,6 +5,10 @@ interface MiddlewareFunction {
(req: Request, res: Response, next: NextFunction): void; (req: Request, res: Response, next: NextFunction): void;
} }
interface RequestData {
[key: string]: any
}
abstract class API { abstract class API {
protected logger: Logger; protected logger: Logger;
@@ -21,8 +25,8 @@ abstract class API {
} }
// to override // to override
public abstract onRequset(data: any, res: Response): Promise<void>; public abstract onRequset(data: RequestData, res: Response): Promise<void>;
} }
export { API }; export { API };
export type { MiddlewareFunction }; export type { MiddlewareFunction, RequestData };

View File

@@ -1,5 +1,6 @@
import { Request, Response, NextFunction } from "express" import { Request, Response, NextFunction } from "express"
import Logger from "@lib/Logger/Logger"; import Logger from "@lib/Logger/Logger";
import { RequestData } from "@lib/API/API";
const logger = new Logger('API', 'Middleware', 'MountIP'); const logger = new Logger('API', 'Middleware', 'MountIP');
// 挂载IP将请求的ip地址挂载到data._ip属性下 // 挂载IP将请求的ip地址挂载到data._ip属性下
@@ -20,9 +21,8 @@ let MountIP = (req: Request, res: Response, next: NextFunction) => {
export default MountIP; export default MountIP;
interface MountIPRequestData { interface MountIPRequestData extends RequestData {
_ip: string, _ip: string;
[key: string | number | symbol]: any
} }
export type { MountIPRequestData }; export type { MountIPRequestData };

View File

@@ -1,5 +1,6 @@
import { Request, Response, NextFunction } from "express" import { Request, Response, NextFunction } from "express"
import Logger from "@lib/Logger/Logger"; import Logger from "@lib/Logger/Logger";
import { RequestData } from "@lib/API/API";
const logger = new Logger('API', 'Middleware', 'MountUserAgent') const logger = new Logger('API', 'Middleware', 'MountUserAgent')
// 挂载用户代理将请求的请求代理挂载到data._userAgent属性下 // 挂载用户代理将请求的请求代理挂载到data._userAgent属性下
@@ -12,9 +13,8 @@ let MountUserAgent = (req: Request, res: Response, next: NextFunction) => {
export default MountUserAgent; export default MountUserAgent;
interface MountUserAgentRequestDate { interface MountUserAgentRequestDate extends RequestData {
_userAgent: string, _userAgent: string,
[key: string | number | symbol]: any
} }
export type { MountUserAgentRequestDate }; export type { MountUserAgentRequestDate };