Об импорте модулей в TypeScript

У меня есть такая файловая структура:

      ∟ src
  ∟ math
    ├ funcs.ts
    ├ constants.ts
    ├ index.ts
├ index.ts

На моемsrc/index.ts, я пробовал это:

      import * as math from './math/index.js';

console.log(`pi = ${math.PI}`);
console.log(`The area of a circle with radius 4 is ${math.circleArea(4)}`);

и все работает отлично.

Однако мне нужно использовать Express.js, поэтому я обновил код:

      import express from 'express';
import * as math from './math/index.js';

console.log(`pi = ${math.PI}`);
console.log(`The area of a circle with radius 4 is ${math.circleArea(4)}`);

Теперь у меня есть эта ошибка:

      src/index.ts:1:21 - error TS2792: Cannot find module 'express'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?

Это мой tsconfig.json:

      {
    "compilerOptions": {
        "outDir":"build",
        "target": "ES2022",
        "module": "ES2022"
    }
}

и это мой package.json:

      {
  "name": "typescript-lab",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "tsc",
    "start": "npm run build && node ./build/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.1",
    "typescript": "^4.7.4"
  }
}

Причина, по которой я не могу настроить tsconfig.json для использования module='node', заключается в том, что я хочу иметь возможность правильно импортировать свои (собственные) модули, и мне также нужно использовать самый верхний на моемindex.tsфайл...

Все мои попытки изменитьpackage.jsonилиtsconfig.jsonпривели либо к:

  1. я не могу использовать самый верхнийawait
  2. Я не могу импортировать/найти свои модули
  3. Я не могу импортировать какой-либо модуль узла (в данном случае экспресс)

Может кто-нибудь мне помочь? Спасибо

0 ответов

Другие вопросы по тегам