web-dev-qa-db-ja.com

エラーTS2318:グローバルタイプ 'オブジェクト'が見つかりません

非常に単純なプロジェクト、コマンドラインを使用するだけのtsconfig.json:

_tsc --jsx react --target es6 --lib dom src/lib/Fetch.tsx
_

そして、私は次のエラーを受け取り、理由がわかりません、これらの型は文字通りどこでも定義されており、特に_--target es6_に含まれていると思われるlib.es6.d.tsで定義されています

_error TS2318: Cannot find global type 'Array'.
error TS2318: Cannot find global type 'Boolean'.
error TS2318: Cannot find global type 'Function'.
error TS2318: Cannot find global type 'IArguments'.
error TS2318: Cannot find global type 'Number'.
error TS2318: Cannot find global type 'Object'.
error TS2318: Cannot find global type 'RegExp'.
_

次の依存関係がインストールされている

_"dependencies": {
  "@types/react-dom": "^16.0.6",
  "@types/react": "^16.3.16",
  "react": "^16.4.0",
  "react-dom": "^16.4.0"
},
"devDependencies": {
  "@types/node": "^10.3.1",
  "TypeScript": "^2.9.1"
}
_

[〜#〜]解決済み[〜#〜]

私の問題を理解しました。 TypeScriptをローカルにインストールしたが、グローバルにインストールされた古いバージョンのTypeScriptを実行していた。 npmスクリプトを介してtscを実行すると、次のコマンドでコンパイルされます。

_tsc --jsx react --target es6 --module commonjs src/lib/Fetch.tsx
_
10
Austin France

domには、ブラウザ固有のDOM要素の定義のみが含まれています。コンパイルに必要なコアesタイプを含むes*ライブラリの1つを含める必要があります。 --libオプションを指定すると、必要なすべてのタイプを含める必要があります。コンパイラーは、ターゲットに基づくライブラリーを含まなくなります。

tsc --jsx react --target es6 --lib es2015,dom src/lib/Fetch.tsx

または、実際にデフォルトのライブラリを使用していない場合は、オプションを完全に省略できます。

tsc --jsx react --target es6 src/lib/Fetch.tsx