【发布时间】:2020-03-16 08:11:11
【问题描述】:
当尝试从包 express 扩展 Request 接口以添加一些自定义属性时,我收到以下打字稿错误:
TS2339: Property '' does not exist on type 'Request<ParamsDictionary>'.
你知道怎么解决吗?
【问题讨论】:
标签: javascript typescript express typescript-typings
当尝试从包 express 扩展 Request 接口以添加一些自定义属性时,我收到以下打字稿错误:
TS2339: Property '' does not exist on type 'Request<ParamsDictionary>'.
你知道怎么解决吗?
【问题讨论】:
标签: javascript typescript express typescript-typings
由于最近更新了其typings 和依赖项,我发现以下内容应该可以修复您的应用程序中的错误。
在你的tsconfig.json
{
"compilerOptions": {
//...
"typeRoots": [
"./custom_typings",
"./node_modules/@types"
],
}
// ...
}
在您的自定义类型中
// custom_typings/express/index.d.ts
declare namespace Express {
interface Request {
customProperties: string[];
}
}
【讨论】:
index.d.ts 文件时,我的 VScode 停止显示错误但我仍然在终端上收到错误,所以我按照你的描述做了,但直接创建了 index.d.ts custom_typings 中的文件,但它仍然给出错误,它是在创建 express 文件夹之后进行的,那么为什么 express 文件夹是强制性的?
express 的目录,也可以创建一个名为 express.d.ts 的文件来告诉 typescript 您正在针对此特定模块
只需添加以下内容,它的作用就是向 express Request 接口添加一个自定义属性
declare global {
namespace Express {
interface Request {
propertyName: string; //or can be anythin
}
}
}
【讨论】: