У меня есть следующий код, который не работает, но я не могу понять, почему это не удается. Какие-либо предложения?
пример кода
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)