web-dev-qa-db-fra.com

erreur TS2318: impossible de trouver le type global "Objet"

Projet très simple, pas de tsconfig.json en utilisant simplement la ligne de commande:

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

et j'obtiens les erreurs suivantes et je ne comprends pas pourquoi, ces types sont littéralement définis partout, et spécifiquement dans lib.es6.d.ts qui est je crois inclus par --target es6

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'.

Faire installer les dépendances suivantes

"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"
}

RÉSOLU

Compris mon problème. Ayant TypeScript installé localement, mais exécutait la version mondiale installée et plus ancienne TypeScript. Lorsque j'ai exécuté tsc via des scripts npm, il se compile avec la commande suivante:

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

dom contient uniquement les définitions des éléments DOM spécifiques au navigateur. Vous devez inclure l'un des es* bibliothèques qui inclut les types de base es nécessaires à la compilation. Une fois que vous avez spécifié un --lib option vous devez inclure tous les types nécessaires, le compilateur n'inclura plus aucune bibliothèque basée sur votre cible:

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

Ou si vous n'utilisez pas simplement les bibliothèques par défaut, vous pouvez simplement omettre complètement l'option:

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