У меня проблема с использованием файла определений типов в других файлах.
У меня следующая структура папок:
|_ foo
| |_ service.ts
| |_ schema.ts
| |_ index.ts
|
|_ types.d.ts
|_ index.ts
Вот мой types.d.ts
:
export enum EBar {
a = 'a',
b = 'b'
}
export interface IBaz {
id: number,
title: string
}
export interface IData {
bar: EBar;
baz: IBaz[];
}
Внутри service.ts
Я использую типы:
import { EBar, IBaz, IData } from '../types';
// ...functions and methods that utilize these types...
Также внутри schema.ts
Я использую типы:
import Joi from '@hapi/joi';
import { EBar } from '../types';
const BAR_A = EBar.a;
const BAR_B = EBar.b;
export default const schema = Joi.object().keys({
bar: Joi.string().valid(BAR_A, BAR_B),
baz: Joi.array().items()
});
И схема, и служба импортируютсяв foo/index.ts
файле:
import { methodA, methodB, methodC } from './service';
import schema from './schema';
// ...use methods and schema
Однако я всегда получаю эту ошибку при запуске приложения:
[Node] Provided module can't be loaded.
[Node] Did you list all required modules in the package.json dependencies?
[Node] Detailed stack trace: Error: Cannot find module '../types'
Но когда я удаляю использование EBar
внутри scheme.ts
ошибка исчезает.
Кто-нибудь испытывал нечто подобное?
Репо с воспроизводимой демонстрацией - https://github.com/voronianski/ts-types-imports-issue