我试图从react-materialize导入组件

import {Navbar, NavItem} from 'react-materialize';

但是当webpack编译我的.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。

react-materialize的index.js是这样的。但是我如何解决这个模块导入在我自己的文件?

https://github.com/react-materialize/react-materialize/blob/master/src/index.js


当前回答

我有一个类似的错误,但对我来说,这是反应路由器。通过为它安装类型来解决它。

npm install --save @types/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。将noImplicitAny设置为false。

其他回答

您所需要做的就是运行下面的脚本。然后,移除/重新安装要使用的模块。

npm install --save @types/react-redux

尝试添加到tsconfig。"noImplicitAny": false 为我工作

如果您只想为不可用类型的节点模块声明类型,则可以使用这些注释。

解决方案- - - >

在SRC目录中创建一个global.d.ts文件。 因为typescript已经监视SRC目录了 因此,我们避免在tsconfig中显式声明。Json也可以加载特定类型的文件,因为在这样做的时候,我们其他默认的输入位置可能会被覆盖

只要为react安装必要的类型,它就应该解决这个错误。

如果你用的是纱线:

yarn add @types/react @types/react-dom @types/react-router-dom -D

如果你正在使用npm:

npm install @types/react @types/react-dom @types/react-router-dom --save-dev

我有一个类似的错误,但对我来说,这是反应路由器。通过为它安装类型来解决它。

npm install --save @types/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。将noImplicitAny设置为false。