Я хочу определить несколько интерфейсов в своем собственном файле в моем проекте typescript, из которого я буду использовать классы для производства, а также макеты для тестирования. Однако я не могу понять, что такое правильный синтаксис. Я нашел много учебников по объявлению интерфейсов и их реализации, но все они имеют тривиальную реализацию как интерфейса, так и производных классов в одном файле, что не очень реально. Какой правильный способ экспорта и импорта интерфейсов?
Как объявить и импортировать интерфейсы typescript в отдельный файл
Ответ 1
Вам нужно экспортировать интерфейс из файла, в котором он определен, и импортировать его везде, где вы хотите его использовать.
IfcSampleInterface.ts
export interface IfcSampleInterface {
key: string;
value: string;
}
SampleInterface.ts
import { IfcSampleInterface } from './IfcSampleInterface.ts';
let sampleVar: IfcSampleInterface;
Ответ 2
Используйте определения (d.ts
) файлов и пространства имен, нет необходимости импортировать/экспортировать модули таким образом. Проект definitelyTyped имеет руководство и огромное количество примеров, как это сделать он.
Ответ 3
Вам нужно экспортировать интерфейсы в файл, в котором они определены, и импортировать их в файлы, в которых они используются. См. эту ссылку для примеров.
x.ts
interface X{
...
}
export default X
y.ts
import X from "./x.ts"
// You can use X now
Для получения дополнительной информации см. https://www.typescriptlang.org/docs/handbook/modules.html