Пользовательский тип для express. js Интерфейс запроса - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь изменить тип запроса в Express. js Пространство имен запроса. Я уже использую пользовательский атрибут, но этот подход, похоже, не работает, если атрибут уже объявлен в @types (работает только для новых атрибутов, добавленных в запрос).

Это мое объявление типа:

declare namespace Express {
    export interface Query { [key: string]: any; }

    export interface Request {
        attr1?: string, // this is working
        query: any      // this is not working, query is still type of Query
    }
}

и это мой ts.config

  "typeRoots" : [
            "./src/types",
            "node_modules/@types"
        ]

Есть ли какой-то другой подход, как переопределить тип атрибута запроса? (или другой атрибут из интерфейса запроса)

1 Ответ

0 голосов
/ 26 апреля 2020

Кажется, единственным решением является использование Omit

import { Request as OriginalRequest } from 'express'

declare namespace Express {
    export interface Request extends Omit<OriginalRequest, 'query'> {
        query: any
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...