Документация (см. Разделы «Экспорт» и «Импорт»): Документация по печатным модулям .
Для завершения ответа Васила:
При импорте модуля следующим образом:
// <some_file>.ts
import <whatever_name_I_want> from "<path_to_my_awesome_module>";
<my_awesome_module>.ts
должен иметь экспорт по умолчанию .Например, это можно сделать следующим образом:
// <my_awesome_module>.ts
export default foo = () => { // notice the 'default' keyword
// ...
};
export bar = () => {
// ...
};
С кодом, приведенным выше, <whatever_name_I_want>
будет методом foo
(модуль может иметь только 1 экспорт по умолчанию),Чтобы импортировать также метод bar
, вам придется импортировать его отдельно:
// <some_file>.ts
import <whatever_name_I_want>, { bar } from "<path_to_my_awesome_module>";
Но в зависимости от того, что вы пытаетесь сделать, вам, вероятно, нет необходимости использоватьэкспорт по умолчанию.Вы можете просто экспортировать все свои методы с ключевым словом export
, например:
// contactController.ts
export index = (req: any, res: any) => { // no need for a default export
// ...
};
export create = (req: any, res: any) => {
// ...
};
, и импортировать их оба в скобках:
// api-routes.ts
import { index, create } from "./contactController";
// Usage
index(...);
create(...);
или в глобальную переменную:
// api-routes.ts
import * as contactController from "./contactController";
// Usage
contactController.index(...);
contactController.create(...);
PS: я переименовал ваш метод new
в create
, потому что "new" уже является ключевым словом JavaScript.