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

其他回答

我费了好大劲才拿到的 在react应用中 会有一个react-app-env.d。SRC文件夹下的Ts文件 只要在这里声明模块

/// <reference types="react-scripts" />
declare module 'react-color/lib/components/alpha/AlphaPointer'

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

我所做的是在项目文件夹目录下从nodejs命令提示符中运行以下命令:

npm init 安装-g webpack NPM install——save react react-dom @types/react @types/react-dom NPM install——保存-dev typescript awesome-typescript-loader source-map-loader NPM安装ajv@^6.0.0 NPM I react-html-id import UniqueId from 'react-html-id';

我做了上面的(虽然我已经安装了npm),它工作!

我也有同样的问题,但不一定与typescript有关,所以我在这些不同的选项上有点挣扎。我正在使用特定的模块react-portal-tooltip创建一个非常基本的create-react-app,得到类似的错误:

无法找到模块“react-portal-tooltip”的声明文件。'/node_modules/react-portal-tooltip/lib/index.js'隐含有一个'any'类型。 尝试npm install @types/react-portal-tooltip,如果它存在,或者添加一个包含声明模块'react-portal-tooltip'的新声明(.d.ts)文件;ts(7016)

我先尝试了很多步骤——添加各种各样的。d。Ts文件,各种NPM安装。

但最终对我有用的是触摸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'

我在不同的位置使用这种通用的“声明模块”策略(我是一个初学者),所以我认为这将适用于不同的选项,但我包括了对我有效的路径。

我最初认为导入'./declare_modules.d。Ts '是必要的。虽然现在看起来并不是这样!但我把这一步也算进去了以防它能帮到别人。

这是我的第一个stackoverflow回答,所以我在这里为分散的过程道歉,希望它仍然有帮助!:)

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

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

2 -进入SRC文件夹

3 -创建global.d.ts文件

4 -像这样声明模块:

declare module 'module-name';

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