typescript - 如何使用 TypeScript 在 express 中输入 `request.query`?

标签 typescript express url types request

我正在运行 express.js使用 TypeScript 的应用程序。
每次我尝试处理 request.query.foo我收到以下错误:

Argument of type 'string | ParsedQs | string[] | ParsedQs[] | undefined' is not assignable to parameter of type 'string'.
  Type 'undefined' is not assignable to type 'string'.
设置:
import { Request, Response, Router } from 'express';

const router = Router();

function getHandler(request: Request, response: Response) {
  const { query } = request;

  query.foo; // string | QueryString.ParsedQs | string[] | QueryString.ParsedQs[] | undefined

}

router.route('/')
  .get(getHandler)
是否有正确的方法输入 request.query没有类型转换?

最佳答案

解决方案是按以下方式使用泛型。

const router = Router();

interface Foo {
    foo: string;
}

function getHandler(request: Request<{}, {}, {}, Foo>, response: Response) {
  const { query } = request;

  query.foo;

}

router.route('/')
  .get(getHandler)

关于typescript - 如何使用 TypeScript 在 express 中输入 `request.query`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63538665/

相关文章:

android - 如何强制 "invalid"Typescript 直接编译成 JS?

mysql - 如何在 Node JS 上使用一对多关系表从 mysql 查询 js 创建 json 结果?

javascript - jade 中的链接 css 文件未加载

javascript - 具有现有验证的 Angular 控制值访问器

typescript - 在 typescript 中增强 vue.js

node.js - 单流多次消费

php - 如何处理像 Last.FM 或维基百科这样的社区 URL 样式?

url - Google Analytics 不显示广告系列的 url 参数

java - <c :import> tag error: java. io.FileNotFoundException

javascript - 未捕获的类型错误 : Cannot read property 'call' of undefined' in backend. min.js:2