我正在尝试从 react-materialize 导入组件为-
import {Navbar, NavItem} from 'react-materialize';
但是当 webpack 编译我的.tsx时候,它会抛出一个错误,因为 -
.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 一起使用。
ts-loader
index.jsreact-materialize 的样子是这样的。但是如何解决这个问题,以便在我自己的文件中导入模块?
index.js
https://github.com/react-materialize/react- materialize/blob/master/src/index.js
对于那些想知道我是如何克服这一点的人。我做了一些 hack 的东西。
在我的项目中,我创建了一个名为@types并将其添加到 tsconfig.json 的文件夹,以便从中查找所有需要的类型。所以它看起来有点像这样 -
@types
"typeRoots": [ "../node_modules/@types", "../@types" ]
在其中我创建了一个名为alltypes.d.ts. 从中找出未知的类型。所以对我来说,这些是未知类型,我在那里添加了它。
alltypes.d.ts
declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';
所以现在打字稿不再抱怨找不到类型了。:) 现在赢得胜利 :)