web-dev-qa-db-ja.com

プロパティ ''はタイプ 'Request <ParamsDictionary>'に存在しません

パッケージRequestからexpressインターフェイスを拡張してカスタムプロパティを追加しようとすると、次のTypeScriptエラーが発生します。

TS2339: Property '' does not exist on type 'Request<ParamsDictionary>'.

それを解決する方法を知っていますか?

2
oktapodia

typings および依存関係の最近の更新以来、次のようにしてアプリケーションのエラーを修正する必要があることがわかりました。

あなたのtsconfig.json

{
  "compilerOptions": {
    //...
    "typeRoots": [
      "./custom_typings",
      "./node_modules/@types"
    ],
  }
// ...
}

そしてあなたのカスタムタイピングで

// custom_typings/express/index.d.ts
declare namespace Express {
    interface Request {
        customProperties: string[];
    }
}
4
oktapodia