1. ホーム
  2. reactjs

[解決済み】Typescript react - モジュール ''react-materialize'' の宣言ファイルが見つかりませんでした。'path/to/module-name.js' は暗黙のうちに any 型を持ちます。

2022-02-04 21:51:40

質問

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.

何か解決策があるのでしょうか?このimportステートメントをどのように解決して動作させればよいのかわかりません。 ts-loader と webpack を使っています。

は、その index.js はこのように表示されます。しかし、私自身のファイルのモジュールインポートのためにこれを解決するにはどうしたらよいでしょうか?

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

解決方法は?

私はどのようにこれを克服したかを知りたかった人のために。私はハックの種類のものをしました。

プロジェクト内に @types を作成し、tsconfig.json に追加して、そこから必要な型をすべて検索するようにしました。というわけで、以下のような感じです。

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

そしてその中に alltypes.d.ts . 未知の型を見つけるために、私の場合、これらは未知の型であり、私はそれをあそこに追加しました。

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

これでtypescriptが型が見つからないと文句を言わなくなりました。)