#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 = { ... }