小编典典

Typescript react - 找不到模块“react-materialize”的声明文件。'path/to/module-name.js' 隐含任何类型

all

我正在尝试从 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-loaderwebpack 一起使用。

index.jsreact-materialize 的样子是这样的。但是如何解决这个问题,以便在我自己的文件中导入模块?

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


阅读 40

收藏
2022-06-23

共1个答案

小编典典

对于那些想知道我是如何克服这一点的人。我做了一些 hack 的东西。

在我的项目中,我创建了一个名为@types并将其添加到 tsconfig.json 的文件夹,以便从中查找所有需要的类型。所以它看起来有点像这样 -

"typeRoots": [
  "../node_modules/@types",
  "../@types"
]

在其中我创建了一个名为alltypes.d.ts. 从中找出未知的类型。所以对我来说,这些是未知类型,我在那里添加了它。

declare module 'react-materialize';
declare module 'react-router';
declare module 'flux';

所以现在打字稿不再抱怨找不到类型了。:) 现在赢得胜利 :)

2022-06-23