Как исправить ошибку некорректно расширяемого интерфейса «Запрос <ParamsDictionary>» - PullRequest
0 голосов
/ 10 марта 2020

У меня есть следующий код, который не работает, но я не могу понять, почему это не удается. Какие-либо предложения?

пример кода

import * as express from "express";

export const router = express.Router();

export interface RARequest<B = {}, P = {}, Q = {}> extends express.Request {
  headers: {
    "device-id": string;
    "x-forwarded-for": string;
    authorization: string;
  };
  params: P;
  query: Q;
  body: B;
}

export interface RAResponse<T = {}> extends express.Response {
  json(data: T): express.Response;
  locals: {
    operatorUrn: string;
  };
}

Сообщение об ошибке

error TS2430: 
Interface 'RARequest<B, P, Q>' incorrectly extends interface 'Request<ParamsDictionary>'. 
Types of property 'params' are incompatible. 
Type 'P' is not assignable to type 'ParamsDictionary'. 
30 export interface RARequest<B = {}, P = {}, Q = {}> extends express.Request 

Обновление после консультации

export interface RARequest<B = {}, P = {}, Q = {}> extends express.Request {
  headers: {
    "device-id": string;
    "x-forwarded-for": string;
    authorization: string;
  };
  params: ParamsDictionary;
  query: Q;
  body: B;
}

Это обновление создает это сообщение об ошибке

сообщение об ошибке

Property 'params' of exported interface has or is using private name
'ParamsDictionary'.ts(4033)

1 Ответ

0 голосов
/ 10 марта 2020

Изменить params: P на params: ParamsDictionary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...