Typescriptを使用してExpress Requestオブジェクトを拡張する 質問する

Typescriptを使用してExpress Requestオブジェクトを拡張する 質問する

TypeScript を使用してミドルウェアからのリクエスト オブジェクトを表現するプロパティを追加しようとしています。ただし、オブジェクトに追加のプロパティを追加する方法がわかりません。可能であれば、括弧表記は使用しないことをお勧めします。

私はこれに似たものを(可能であれば)記述できる解決策を探しています:

app.use((req, res, next) => {
    req.property = setProperty(); 
    next();
});

ベストアンサー1

カスタム定義を作成し、Typescriptの機能を使用するには、宣言のマージこれは、例えば、method-override

ファイルを作成し、のセクションがある場合はcustom.d.ts必ず含めてください。内容は次のようになります。tsconfig.jsonfiles

declare namespace Express {
   export interface Request {
      tenant?: string
   }
}

これにより、コードのどの時点でも次のようなコードを使用できるようになります。

router.use((req, res, next) => {
    req.tenant = 'tenant-X'
    next()
})

router.get('/whichTenant', (req, res) => {
    res.status(200).send('This is your tenant: '+req.tenant)
})

おすすめ記事