#javascript #typescript
Вопрос:
У меня есть пакет с обычным js, мне нужно использовать его в проекте TS, поэтому он используется tsc
для создания типизаций
пакет.json
{
"main": "src/index.js",
"typings": "types/index",
"private": "true",
"devDependencies": {
"typescript": "^4.2.4"
},
"files": [
"src/**/*",
"types/**/*"
]
}
tsconfig.json
{
"include": [
"src/**/*"
],
"compilerOptions": {
"module": "CommonJS",
"allowJs": true,
"declaration": true,
"emitDeclarationOnly": true,
"rootDir": "src",
"outDir": "types"
}
}
Я добавил этот пакет, используя yarn add git https://...
Когда я пытаюсь использовать его, Phpstrom распознает модуль и все его экспортные данные (по индексу) и обеспечивает завершение кода, но под именем модуля есть красная строка с этой ошибкой :
TS7016: Could not find a declaration file for module 'X'. 'Y/node_modules/X/src/index.js' implicitly has an 'any' type. Try
npm install @типы/сигнализация if it exists or add a new declaration (.d.ts) file containing
объявляет модуль «X»;`
Но код на самом деле компилируется и работает без ошибок. Но я могу импортировать только из индекса, если я попытаюсь импортировать X/src/a
снова, я получу ту же ошибку, но на этот раз phpstorm не предоставит форму завершения кода для экспорта из этого файла.
Итак, почему phpstorm показывает эту ошибку и как я могу ее исправить?
Если я опущу "outDir": "types"
и разрешу .d.ts
создавать файлы рядом с исходными файлами js, это будет работать просто отлично, но я хочу сохранить .d.ts
файлы отдельно, а затем объединить их в один файл, если это возможно.
Если я установлю этот "outFile":"index.d.ts"
параметр, то ничего не сработает 😀