69354

[code]

    const express = require('express');
    const app = express();
    import bodyParser from 'body-parser';
    
    app.use(bodyParser());
    
    app.post("/product", (req: Request, res: Response) => {
      let product = {
        test: "test"
      }
      res.json(product)
    })
    
[/code]

> res.json(product)

の部分で以下のエラー`2554`が発生してしまいます。  
このエラーを回避する方法はありますか？

[code]

    Expected 0 arguments, but got 1.ts(2554)
    
[/code]

`json()`の定義元である`lib.dom.d.ts`で、`json()`の引数がそもそも定義されていないので、  
良い解決方法を見つけられませんでした。

[code]

    interface Body {
        readonly body: ReadableStream<Uint8Array> | null;
        readonly bodyUsed: boolean;
        arrayBuffer(): Promise<ArrayBuffer>;
        blob(): Promise<Blob>;
        formData(): Promise<FormData>;
        json(): Promise<any>;
        text(): Promise<string>;
    }
    
[/code]

> json(): Promise;


CC BY-SA 4.0
2020-08-07T15:22:11.787
69345
2020-08-08T03:27:44.323
9616
question
node.js typescript
typescript Response.json()で引数に関するエラー(2554)


expressが提供する型情報を参照していないようです。

Requestは確かに`lib.dom.d.ts`にありますが、expressが提供する型情報は[@types/express](https://www.npmjs.com/package/@types/express)を参照する必要があります。

そのためには以下のように書き直すと良いでしょう。

[code]

    import express from 'express';
    import bodyParser from 'body-parser';
    
    const app = express();
    
    app.use(bodyParser());
    
    app.post("/product", (req: express.Request, res: express.Response) => {
      let product = {
        test: "test"
      }
      res.json(product)
    })
    
    
[/code]


CC BY-SA 4.0
2020-08-08T03:27:44.323
69354
2020-08-08T03:27:44.323
7997
69345
answer