score:1

Accepted answer

just move the common methods to a separate interface that is extended by all of your interfaces:

interface common { 
  getinitialprops: ({ assets, data, renderpage }: documentprops) => any;
  load: () => promise<react.reactnode>;
}

export interface asyncroutecomponent<props> extends common, react.component<props, asyncroutecomponentstate> { }

export interface asyncroutecomponentclass<props> extends common, asyncroutecomponent<props> {
  new (props: props): asyncroutecomponent<props>;
}

export interface asyncroutestateless<props> extends common, asyncroutecomponent<props> {
  (props: props): asyncroutecomponent<props>;
}

Related Query

More Query from same tag