TSError: ⨯ Unable to compile TypeScript:
../server/src/api/filters/googleFilter.ts:6:23 - error TS2339: Property 'headers' does not exist on type 'Request<core.ParamsDictionary>'.
6 const idToken = req.headers.authorization;
当我决定打开该工作区的node_modules文件夹时,我花了相当多的搜索来寻找修复方法。
/// <reference types="express-serve-static-core" />
/// <reference types="serve-static" />
import * as bodyParser from "body-parser";
import serveStatic = require("serve-static");
import * as core from "express-serve-static-core";
import * as qs from "qs";
declare global {
declare namespace Express {
interface Request {
user?: any,
page?: number,
}
}
}
// If this file has no import/export statements (i.e. is a script)
// convert it into a module by adding an empty export statement.
export { }
5条答案
按热度按时间nuypyhwy1#
自从最近更新了它的typings和依赖项之后,我发现下面的代码可以修复应用程序中的错误。
在您的
tsconfig.json
中在你的自定义输入中
vdgimpew2#
只需添加以下内容,它只是向express Request接口添加了一个自定义属性
kr98yfug3#
我最近遇到了同样的问题,我按照前面的评论和repo中的解决方案,我仍然有同样的问题。经过进一步的挖掘,似乎这是ts-node的一个bug。
要解决这个问题,您需要使用--files标志运行服务器
因此,如果您通常运行服务器
ts-node ./src/server.ts
或nodemon ./src/server.ts
,请将其更改为ts-node --files ./src/server.ts
或nodemon --files ./src/server.ts
在那之后,我能够摆脱VScode错误和启动服务器时的错误。
h9a6wy2h4#
在我的例子中,它缺少express的类型。我目前正在做的是将我们的代码库从Yarn迁移到PNPM。与PNPM的不同之处在于它不像Yarn那样提升依赖关系,所以我必须为每个使用该依赖关系的工作区添加对package.json的依赖关系。
这是我遇到的错误:
当我决定打开该工作区的
node_modules
文件夹时,我花了相当多的搜索来寻找修复方法。我看到我的IDE显示错误,告诉我它找不到
express-serve-static-core
和serve-static
的类型,所以我所做的是将其添加到该工作区的package.json中,这样就修复了终端上的错误。希望这能帮助其他人谁将遇到同样的问题与PNPM。
neekobn85#
"这对我很有效"
使用
ts-node
按照@Rishav Sinha的建议,添加以下文件以将属性添加到快速请求接口
1.添加此文件
src/types.custom.d.ts
1.加入
tsconfig.json
1.按照@Shahar Sharron的建议,使用
--files
选项运行此命令如果全局安装了
ts-node
或从项目依赖项
ts-node
运行使用
nodemon
如果要使用
nodemom
1.将此文件添加到文件夹project
nodemon.json
中1.运行
nodemon