#typescript #typescript-module-resolution
Вопрос:
У меня есть 2 файла TS, Затем экспортируйте только функции (без клиссов, интерфейсов и т. Д.), Например:
// the-folder/file1.ts
export function func1() { ... };
// the-folder/file2.ts
export function func2() { ... };
и я создал бочку index.ts
:
// the-folder/index.ts
export * from "./file1";
export * from "./file2";
Теперь я хотел использовать его в другом файле TS, просто импортировав их func1()
и func2()
:
// different-folder/some-other-file.ts
import { func1, func2 } from "../the-folder";
Но здесь я получаю ошибку:
TS2305: Модуль не имеет экспортированного элемента ‘func1’
и то же самое для func2.
Чего мне не хватает?
Обновить
Я создал стекблитц — и он там работает! Но не в проекте.
ОБНОВЛЕНИЕ 1
Если я изменю import
на:
import { func1, func2 } from "../the-folder/index";
это работает.
Комментарии:
1. Я подозреваю, что
"<folder-path>"
в этом и заключается проблема, но вы опустили значение 😅2. вы уверены, что ваш паттинг правильный? Я предлагаю попробовать импортировать непосредственно из файла 1.ts и проверить, работает ли это
3. добавлены пути к папке с вопросом. Это действительно работает, когда я импортирую отдельные файлы.
4. Моя версия TS уже жалуется из-за расширений на экспорте:
An import path cannot end with a '.ts' extension. Consider importing './file1' instead. ts(2691)
5. TS хочет
export * from "./file1.ts";
, чтобы это было так:export * from "./file1";
, поэтому.ts
расширения файла нет.