TypeScript 2.0 и слияние интерфейса react-router, объявленного в Route.d.ts

Я хочу добавить атрибут name в интерфейс RouteProps. Без него я получаю:

ошибка TS2339: свойство ‘ name ‘не существует для типа’ IntrinsicAttributes & > IntrinsicClassAttributes>> & RouteProp…’

Если добавить name?: string;к внешнему маршруту.d.TS файл ошибка уходит.

Я попытался объединить модули несколькими предлагаемыми способами без успеха.

внешний маршрут.d.TS декларация начинается так:

declare const self: self.Route;
type self = self.Route;
export default self;

declare namespace self {

    interface RouteProps extends React.Props<Route> {...

Я использую TypeScript 2.

1 ответ

  1. У меня тот же вопрос и я использую «увеличение модуля»: https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation

    можно добавить новый файл custom-route.d.ts и написать код

    declare module "react-router/lib/Route" {
        interface RouteProps {
            name?: String;
        }
    }
    

    вы можете увидеть мой вопрос в
    Пакет TypeScript custom @types для @types/react-router