typescript - ts-node 没有拾取 d.ts 文件,但 tsc 编译工作正常
问题描述
我正在使用带有 express 的打字稿,试图扩展 express 的请求对象。
这是我的 server.ts:
import express, { Request, Response } from "express";
const app = express();
app.use(function(req: Request, res: Response, next) {
req.testVal = 200;
});
这是我的extends.d.ts:
declare namespace Express {
export interface Request {
testVal: number;
}
}
我正在使用 VSCode 进行开发。IDE 没有给我任何警告。
编译tsc
也可以正常工作。
但是,当我使用 运行它时ts-node
,我收到错误消息:
src/server.ts:19:9 - error TS2339: Property 'testVal' does not exist on type 'Request<ParamsDictionary>'.
19 req.testVal = 200;
~~~~~~~
解决方案
要声明testVal
,您可以使用以下代码:
选项1:
declare global {
namespace Express {
interface Request {
testVal : number
}
}
}
选项 2:
declare module 'express' {
interface Request {
testVal : number
}
}
我希望它的工作。
推荐阅读
- r - 用 dplyr 在 R 中索引一个组
- google-cloud-platform - SuiteCRM、GCP 和 Maria DB - 太多了?
- javascript - 如何使用为 webp 服务的自定义 url 图像更改博客中的所有 url 图像
- xcode - 如何在我的物理手表上从 XCode 预览我的应用程序
- html - 制作浮箱 100% 集装箱箱
- python - 在 pygame 游戏中更改精灵时,速度下降
- flutter - 如何在颤动中获取本地化的日期字符串?
- r - 滞后时间序列数据
- ruby-on-rails - ActiveRecord / Arel 链上的关联条件
- python - 从 Python 中的有序列表中绘制 2D 多个向量