Я пытаюсь импортировать компоненты из реакции-материализации как -
import {Navbar, NavItem} from 'react-materialize';
Но когда веб-пакет компилирует мой, .tsx
он выдает ошибку для вышеуказанного:
ERROR in ./src/common/navbar.tsx
(3,31): error TS7016: Could not find a declaration file for module 'react-materi
alize'. 'D:\Private\Works\Typescript\QuickReact\node_modules\react-materialize\l
ib\index.js' implicitly has an 'any' type.
Любое решение для этого. Я не уверен, как разрешить этот оператор импорта для работы ts-loader
и webpack.
Так index.js
выглядит объект response-materialize. Но как решить эту проблему для импорта модуля в мои собственные файлы ..
https://github.com/react-materialize/react-materialize/blob/master/src/index.js
Ответы:
У меня была аналогичная ошибка, но для меня это было
react-router
. Решил, установив на него типы.Ошибка:
(6,30): error TS7016: Could not find a declaration file for module 'react-router'. '\node_modules\react-router\index.js' implicitly has an 'any' type.
Если вы хотите отключить сайт , он широко вы можете вместо редактирования
tsconfig.json
и наборnoImplicitAny
вfalse
.источник
"noImplicitAny": false,
его отключило (я получил эту проблему из-за использования response-native init MyProject --template typescript, по крайней мере, я так думаю) 👍yarn add @types/react-router --dev
Для тех, кто хотел знать, как я это преодолел. Я сделал что-то вроде хакерства.
Внутри своего проекта я создал папку с именем
@types
и добавил ее в tsconfig.json, чтобы найти в ней все необходимые типы. Это выглядит примерно так -"typeRoots": [ "../node_modules/@types", "../@types" ]
И внутри я создал файл с именем
alltypes.d.ts
. Найти из него неизвестные виды. так что для меня это были неизвестные типы, и я добавил их туда.declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';
Так что теперь машинопись не жаловалась на типы, которые больше не были найдены. :) выиграть выиграть сейчас ситуацию :)
источник
declare
утверждений в файле с именемindex.d.ts
исправлено для меня. TypeRoots трогать не пришлось.require
для других вещей, таких как изображения. По сути, он просто не позволяет вам использовать егоrequire
ни для чего.nvalid module name in augmentation. Module 'some-dumb-lib-with-no-types' resolves to an untyped module at '/path/to/module', which cannot be augmented.
react-countdown-clock
, созданной@types
папкой и сделал все вышеуказанные шаги. по-прежнему получаю ту же ошибку.У меня была такая же проблема с типами response-redux. Самое простое решение было добавлено в tsconfig.json:
"noImplicitAny": false
Пример:
{ "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, "isolatedModules": true, "jsx": "react", "lib": ["es6"], "moduleResolution": "node", "noEmit": true, "strict": true, "target": "esnext", "noImplicitAny": false, }, "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"] }
источник
IntelliJ
IDE, но пользовательскийtypeRoots
метод (который является принятым ответом) работал даже вVS Code
IDEЕсли
@types/<package>
модуль, который вы используете, отсутствует, вы можете легко обойти проблему, добавив// @ts-ignore
комментарий выше, т.е.// @ts-ignore import { Navbar, NavItem } from 'react-materialize';
В качестве альтернативы вы можете создать
@types/<package>
следующее:публикация файлов декларации
ОпределенноTyped, как я могу внести свой вклад
источник
@types
доступен, кстати. Создана проблема с репо ... github.com/geelen/react-snapshot/issues/131В моем случае у меня была проблема с реакцией, поэтому я начал делать:
npm install @types/react
а затем в
npm install @types/react-dom
Это сработало для меня
источник
Все, что вам нужно сделать, это запустить приведенный ниже сценарий. Затем удалите / переустановите модуль, который вы хотите использовать.
источник
У меня возникла эта проблема, когда я добавил
react-router-dom
в новое приложение CRA с помощью машинописного текста. После того, как я добавил@types/react-router
, проблема была исправлена.источник
У меня была такая же проблема, но не обязательно относящаяся к машинописному тексту, поэтому я немного боролся с этими различными вариантами. Я делаю очень простое приложение create-response-app, используя конкретный модуль,
react-portal-tooltip,
получающий аналогичную ошибку:Сначала я пробовал много шагов - добавлял различные
.d.ts
файлы, различные установки npm.Но то, что в конечном итоге сработало для меня, было
touch src/declare_modules.d.ts
тогда вsrc/declare_modules.d.ts
:declare module "react-portal-tooltip";
И в
src/App.js
:import ToolTip from 'react-portal-tooltip'; // import './declare_modules.d.ts'
Я немного боролся с разными местоположениями, чтобы использовать эту общую стратегию «объявления модуля» (я очень новичок), поэтому я думаю, что это будет работать с разными вариантами, но я включил пути для того, что сработало у меня.
Я изначально думал
import './declare_modules.d.ts'
это необходимо. Хотя сейчас вроде как нет! Но я включаю шаг на случай, если он кому-то поможет.Это мой первый ответ на stackoverflow, поэтому я прошу прощения за разрозненный процесс здесь и надеюсь, что он все еще был полезен! :)
источник
Кроме того, эта ошибка исправляется, если пакет, который вы пытаетесь использовать, имеет собственный (-ые) файл (-ы), и он указан в package.json.
typings
атрибутеВот так:
{ "name": "some-package", "version": "X.Y.Z", "description": "Yada yada yada", "main": "./index.js", "typings": "./index.d.ts", "repository": "https://github.com/yadayada.git", "author": "John Doe", "license": "MIT", "private": true }
источник
Более хитрый способ - добавить, например, в boot.tsx строку
import './path/declare_modules.d.ts';
с участием
declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';
в
declare_modules.d.ts
Это работает, но другие решения лучше IMO.
источник
Я выполнил следующие команды из командной строки nodejs, находясь в каталоге папки проекта:
npm init
npm install -g webpack
npm install --save react react-dom @types/react @types/react-dom
npm install --save-dev typescript awesome-typescript-loader source-map-loader
npm install ajv@^6.0.0
npm i react-html-id
import UniqueId from 'react-html-id';
Я сделал это (хотя у меня уже был установлен npm), и это сработало!
источник
В моем случае проблема заключалась в том, что типы не добавлялись в файл package.json в devDependencies, чтобы исправить это, я запустил,
npm install --save-dev @types/react-redux
обратите внимание на--save-dev
источник
попробуйте добавить в файл tsconfig.json:
"noImplicitAny": false
у меня сработалоисточник
работает нормально
источник