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
или импорт.