Typscript приложения "реагировать" не загружает файл d.ts

Я создал проект, используя машинописный текст для создания приложения реакции. У меня есть несколько файлов d.ts, где я определил типы интерфейсов и перечисления. Когда я запускаю скрипт запуска. Он не может загрузить файлы d.ts.

ниже мой файл tsconfig.

{
  "compilerOptions": {
    "target": "es6",
    "lib": [
      "dom",
      "dom.iterable",
      "es2017"
    ],
    "allowJs": true,
    "skipLibCheck": false,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve",
    "pretty": true,
    "preserveConstEnums": true,
    "typeRoots": [
      "./node_modules/@types",
      "src/*"
    ]
  },
  "include": [
    "src/*"
  ]
}

typeRoot указывает на src/*, где у меня есть мои d.ts файлы, но ни один из d.ts не загружен. и я получаю следующую ошибку:

Ошибка типа: не удается найти имя 'IAlarmsDetails'. TS2304

interface IAlarmProps {
        alarm: IAlarmsDetails;
}       

Это объявление для IAlarmsDetails в одном из Alarm.d.ts

declare type IAlarmsList = IAlarmsDetails[];

пожалуйста, дайте мне то, что мне здесь не хватает. Я не хочу использовать опцию извлечения и написать свой собственный конфигурационный файл сборки.

3 ответа

Кажется, что единственный способ использовать .d.ts файл из коробки с create-реагировать-приложение (версия 3.0.1), чтобы назвать его global.d.ts и положить его в src каталог:

src/global.d.ts

Я не уверен, почему это правило нигде не задокументировано, но это был единственный способ заставить его работать.

По крайней мере, в Create React App версии 4.0.3 эту проблему можно решить, отредактировав файл tsconfig.json вашего приложения.

Под опцией "включает" добавьте "src/types/**/*". Держите ваши .d.ts файлы определений внутри этого каталога src / types.

Независимо от того, включаете ли вы exportв этих файлах, приложение должно скомпилировать. Однако оператор экспорта не позволит вашему линтеру кода найти определения типов, если вы также не импортируете их вручную.

Решение обнаружено благодаря этому комментарию github.

У меня была такая же проблема, и я решил ее, переименовав .d.tsфайл в ту же папку, а затем он работал без экспорта внутри index.d.tsили импорт.

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