gpt4 book ai didi

node.js - 如何将 Typescript 定义添加到 Express req 和 res

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:22 25 4
gpt4 key购买 nike

我有一组用于我的 REST API 的 Controller 函数,我得到了很多以下内容

error TS7006: Parameter 'req' implicitly has an 'any' type.

同样适用于 res。我一直在玩打字等,但没有成功。例如,下面的 Request 类型参数不起作用。

这是 Controller 文件的示例。引用路径正确。

/// <reference path="../../../typings/tsd.d.ts" />    
/* globals require */
"use strict";
exports.test = (req : Request, res) => {

我尝试将 import * as express from "express"; 添加到文件中 - 我通常不需要它,因为这些函数由实际实现路由的 index.js 导出和使用。

这是 tsd.d.ts

/// <reference path="requirejs/require.d.ts" />
/// <reference path="express/express.d.ts" />
/// <reference path="mime/mime.d.ts" />
/// <reference path="node/node.d.ts" />
/// <reference path="serve-static/serve-static.d.ts" />
/// <reference path="bluebird/bluebird.d.ts" />
/// <reference path="mongoose/mongoose.d.ts" />

最佳答案

您可以使用 ES6 样式命名的导入来仅导入您需要的接口(interface),而不是 import * as express from 'express' 这将包括 express 本身。

首先,确保您已经安装了 express 的类型定义(npm install -D @types/express)。

例子:

// middleware/authCheck.ts
import { Request, Response, NextFunction } from 'express';

export const authCheckMiddleware = (req: Request, res: Response, next: NextFunction) => {
...
};

// server.ts
import { authCheckMiddleware } from './middleware/authCheck';
app.use('/api', authCheckMiddleware);

目前使用 TypeScript 2.3.4 和@types/express 4.0.36。

关于node.js - 如何将 Typescript 定义添加到 Express req 和 res,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34508081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com