Расширение интерфейса с помощью нескольких импортированных интерфейсов

#typescript

#typescript

Вопрос:

У меня следующий сценарий. У меня есть несколько интерфейсов, которые я импортирую, как:

 import * as typeDefTypes from "../graphSchemas/generatedTypes"
 

Теперь я хочу расширить другой интерфейс со всеми этими интерфейсами внутри них.

Я пытался использовать оператор распространения, но это действительно не работает:

 interface ResolverInterface {
   ...typeDefTypes
}
 

Я имею в виду, что я мог бы сделать это так:

 interface ResolverInterface extends typeDefTypes.Book, typeDefTypes.User ... {}
 

но это не то, что я хочу, поскольку существует множество интерфейсов

Комментарии:

1. Можете ли вы показать нам, как generatedTypes это выглядит? Содержит ли он несколько export interface <InterfaceName> экспортов?

2. @eol да, существует несколько именованных экспортов, таких как export interface book {} , export interface User {...} и так далее

Ответ №1:

Я думаю, что вы ищете так называемый реэкспорт связанного интерфейса. Это позволяет вам выполнить следующее:

 // in your resolver-interface.ts
export * from '../graphSchemas/generatedTypes';
export interface CustomInterface {
    customField: string
}

// in your main.ts
import * as ResolverInterface from './resolver-interface';
let a:ResolverInterface.CustomInterface =  { ... }
let b:ResolverInterface.Book = { ... }