#はじめに
import * as React from ‘react’;
Projectディレクトリ内のReactを読み込んでいるところ全てで、
Could not find a declaration file for module ‘react’. ‘/Users/username/projects/project-name/node_modules/react/index.js’ implicitly has an ‘any’ type.
If the ‘react’ package actually exposes this module, consider sending a pull request to amend ’https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/type
というエラーが表示されるようになった。
#"noImplicitAny": false は違うのではないか、、
エラーのキーワードで調べてみると、
tsconfig.jsonに、
“noImplicitAny”: false,
を追加する、という方法が見つかったが、ちょっと怪しいと感じた為、検索してみると、
TypeScriptでこれは設定しとけっていうコンパイラーオプション(noImplicitAnyオプション)
こちらの記事に、すごくわかりやすく書いて下さっていました。ありがとうございます。
TSでは型定義がない変数はany型になってしまいます(暗黙のany型)。それを禁止します。
自分の場合、今のTypeScript学習段階では、any型をスルーしてしまうと型の理解に繋がらないのでアウトだと思いました。
#原因・対処
reactは typescriptで書かれてない上、型提供も元パッケージでしていないので型を別でインストールする必要がありました。
yarn add -D @types/react
これで、型をインストールする。
型情報は、リリース時のパッケージには含める必要がないので
-Dオプションをつけて、devDependencies にインストールする。
これで、すべてのエラーが消えた。
devDependencies:開発用の依存関係。開発ワークフローのどこかで必要で、コードの実行時には必要のない依存関係.
#終わりに。
最後まで読んで頂きありがとうございます
転職の為、未経験の状態からReact,TypeScriript,Docker,Rails等を学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございました。