【发布时间】:2020-03-16 20:46:09
【问题描述】:
我正在尝试向我的请求添加 自定义标头,但必须在界面中对其进行修改/实现。
默认的Request 接口引用IncomingHttpHeaders。所以我试图用我自己的自定义令牌头来扩展这个接口。
import { IncomingHttpHeaders } from 'http';
declare module 'express-serve-static-core' {
interface IncomingHttpHeaders {
"XYZ-Token"?: string
}
}
我已更新我的.tsconfig 文件以读取./types 文件夹。我的文件名是index.d.ts
如果我不使用自定义标头,我可以成功编译代码,但是当我尝试在代码中引用令牌标头时,我收到以下编译错误:
错误
error TS2538: Type 'string[]' cannot be used as an index type.
req.headers['XYZ-Token']
如果我使用原始界面的任何值,一切正常。
示例:
req.headers['user-agent']
其他信息:我正在使用 NestJS,它在后台使用 Fastify/Express。我可以确认正在使用的请求接口来自 Express。 Fastify 向后兼容所有 Express 模块。主要使用 Fastify,因为它更快。
【问题讨论】:
标签: node.js typescript express http-headers nestjs