Модуль не найден с соответствующими объявлениями типов, использующими Typescript с Next.js

#node.js #reactjs #typescript #next.js #babeljs

Вопрос:

У меня есть next.js проект, в который я пытаюсь добавить машинописный текст.

Моя структура папок выглядит следующим образом:

 api
  aggregation.ts
interfaces
  index.ts
components
  Component1
    index.js
    index.module.css
  Component2
    index.js
    index.module.css
pages
  page1
    index.js
    index.module.css
 

У меня есть псевдоним для interfaces в next.config.js

 config.resolve.alias.interfaces = path.join(__dirname, 'interfaces');
 

Теперь актуальный вопрос

index.ts в interfaces интерфейсах экспорта, таких как

  export interface Order {
  store: Store;
  orderNumber: string;
  totals: Totals;
  customer: Customer;
  currency: Currency;
  paymentMethod: PaymentMethod;
  items: OrderProduct[];
  createdAt: string;
  orderId: string;
}
 

И я пытаюсь импортировать их в aggregation.ts такие

 import { Order } from 'interfaces';
 

И я получаю

 Cannot find module 'interfaces' or its corresponding type declarations.
 

Что также приводит к сбою сборок.

Я установил

 "@types/node": "^16.0.1",
"@types/react": "^17.0.14",
"typescript": "^4.3.5",
 

И далее сгенерировал next-env.d.ts правильно с

 /// <reference types="next" />
/// <reference types="next/types/global" />
 

Есть какие-нибудь идеи о том, как решить эту Cannot find module проблему? У меня такое чувство, что это может быть как-то связано со структурой моих папок или этапом сборки. Но я также получаю подсветку синтаксиса, указывающую на ошибки импорта, так что, вероятно, это связано с конфигурацией typescript.

Буду признателен за любой совет!

Комментарии:

1. Вы пробовали настроить псевдонимы путей в своем tsconfig , как описано в разделе Абсолютный импорт и псевдонимы путей модулей ?

2. @juliomalves это сработало! Спасибо! Решено! Опубликуйте в качестве ответа, чтобы я мог отметить его