TypeScriptでdoes not exist on typeと言われた時の対策

下記のようなコードを書いた所

Request("/path/to.json").then((hoge: Array<Object>) => {
hoge.forEach((str) => {
console.log(str);
});
});

オブジェクトなんだからforEachなんてだめでしょとWebpackが行った

TS2339: Property 'forEach' does not exist on type '{}'.

下記のように実際に渡ってくる値の型を宣言してあげたらコンパイルできるようになった

Request("/path/to.json").then((hoge: Array<String>) => {
hoge.forEach((str) => {
console.log(str);
});
});

IntelliJで書いているがIDEは何も言わないので混乱した。でも確かに型をしっかり書いてあげるべきだし、書いてあげることでIDEが強力な補完をしてくれるのでありがたい。もっと型を宣言する癖をつけたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA