Создать приложение React не может найти объявленный модуль - PullRequest
3 голосов
/ 19 марта 2019

У меня есть проект, созданный с использованием CRA.

в корне проекта существует tsconfig.json и папка с именем types. в папке типов я создал файл modulename.d.ts для модуля, для которого не заданы значения по умолчанию в node_modules, а также для него нет ничего в @types\module-name.

но я получаю ошибку во время компиляции.

Ошибка типа: не удалось найти файл объявления для модуля thename. '/*/node_modules/thename/dist/entry.js' неявно имеет тип 'any'.

почему компилятор не находит объявление типа в папке типов?

// .d.ts
declare module 'foo-react' {
    import * as React from 'react';
    // ...
}

это tsconfig.json

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": { "*": ["types/*"] },
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "plugins": [{ "name": "typescript-tslint-plugin" }],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve"
  },
  "include": ["src"]
}

1 Ответ

0 голосов
/ 26 июня 2019

Так получилось, что

  1. путь к папке types (мой настроенный в корне проекта) должен быть добавлен к атрибуту include, а не к атрибуту paths. "include": ["src", "./types"]
  2. В папке types, имеющей структуру типа types/<module_name>/index.d.ts. Теперь этот индексный файл может объявить этот модуль как any или подробно описать все типы.
...