我试图从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


当前回答

在我的情况下,我有一个react的问题,所以我开始做:

NPM install @types/react

然后是

NPM install @types/react-dom

这对我很有效

其他回答

此外,如果您试图使用的包有自己的类型文件,并且在包中列出了它,则此错误将得到修复。Json类型属性

像这样:

{
  "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
}

如果你在使用npm react时遇到问题,请安装——save @types/reactnpm install——save @types/react

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

解决方案- - - >

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

确保停止你的react本地服务器,并在执行以下操作后重新启动它:

1-创建。d。Ts文件手动,你只需要做以下工作:

2 -进入SRC文件夹

3 -创建global.d.ts文件

4 -像这样声明模块:

declare module 'module-name';

我之前在这里回答过,很不错

在我的情况下,我有一个react的问题,所以我开始做:

NPM install @types/react

然后是

NPM install @types/react-dom

这对我很有效