当前位置:  开发笔记 > 编程语言 > 正文

如何将Typescript定义添加到Express req&res

如何解决《如何将Typescript定义添加到Expressreq&res》经验,为你挑选了1个好方法。

我有一套用于REST API的控制器函数,我得到了很多以下内容

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

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

以下是控制器文件的示例.参考路径是正确的.

///     
/* globals require */    
"use strict";    
exports.test = (req : Request, res) => {

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

这是tsd.d.ts

/// 
/// 
/// 
/// 
/// 
/// 
/// 

小智.. 10

您可以使用名为import的ES6样式仅导入所需的接口,而不是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.

我有同样的问题,所以我想我会提供一个答案,万一其他人遇到这个问题.



1> 小智..:

您可以使用名为import的ES6样式仅导入所需的接口,而不是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.

我有同样的问题,所以我想我会提供一个答案,万一其他人遇到这个问题.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有