typescript - fel TS2318: Kan inte hitta global typ 'Object'
Väldigt enkelt projekt, ingen tsconfig.json, bara använder kommandoraden:
tsc --jsx react --target es6 --lib dom src/lib/Fetch.tsx
och jag får följande fel och jag förstår inte varför, dessa typer är bokstavligen definierade överallt, och specifikt i lib.es6.d.ts som jag tror inkluderas av --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'.
Ha följande beroenden installerade
"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"
}
UPPLÖST
Listade ut mitt problem. Jag hade TypeScript installerat lokalt, men körde den globalt installerade och äldre versionen av TypeScript. När jag körde tsc via npm-skript kompilerar det med följande kommando:
tsc --jsx react --target es6 --module commonjs src/lib/Fetch.tsx
Svar #1
dom innehåller bara definitionerna för webbläsarspecifika DOM-element. Du måste inkludera ett av es*-biblioteken som innehåller de grundläggande ES-typerna som behövs för kompilering. När du anger ett --lib-alternativ måste du inkludera alla nödvändiga typer, kompilatorn kommer inte längre att inkludera något bibliotek baserat på ditt mål:
tsc --jsx react --target es6 --lib es2015,dom src/lib/Fetch.tsx
Eller om du faktiskt inte bara använder standardbiblioteken, kan du helt enkelt utelämna alternativet helt:
tsc --jsx react --target es6 src/lib/Fetch.tsx
