javascript typescript typescript2.0

javascript - Typecript no puede encontrar la ventana de nombre o documento



typescript typescript2.0 (2)

Para cualquier caso:

document.getElementById(''body''); // or window.document.getElementById(''body'');

Me sale el error TS2304: Cannot find name ''window''.

¿Me falta algo en tsconfig.json para un archivo de definición que debo instalar?

Recibo el mensaje cuando vscode tsc y en vscode

tsconfig.json:

{ "compilerOptions": { "allowJs": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "jsx": "react", "module": "commonjs", "moduleResolution": "node", "noEmitOnError": true, "noImplicitAny": false, "sourceMap": true, "suppressImplicitAnyIndexErrors": true, "target": "ES2016", "typeRoots": [ "node_modules/@types/", "typings/index.d.ts" ] }, "exclude": [ "node_modules", "**/*-aot.ts" ] }

Mi respuesta: para usar con tsconfig.json a es5 y uso lib: ["es2015", "dom"]


Parece que el problema está causado por apuntar a ES2016 .
¿Estás apuntando a eso por una razón? Si apunta a es6 el error probablemente desaparecerá.

Otra opción es especificar las bibliotecas para que las use el compilador:

tsc -t ES2016 --lib "ES2016","DOM" ./your_file.ts

Lo que también debería hacer que el error desaparezca.

No estoy seguro de por qué las bibliotecas no se usan de forma predeterminada, en los documentos para las opciones del compilador se indica para la opción --lib :

Nota: Si no se especifica --lib, se inyecta una biblioteca predeterminada. La biblioteca predeterminada inyectada es:
► Para --target ES5: DOM, ES5, ScriptHost
► Para --target ES6: DOM, ES6, DOM.Iterable, ScriptHost

Pero no indica cuáles son las bibliotecas predeterminadas cuando se dirigen a ES2016 .
Puede ser un error, intente abrir un problema, si lo hace, comparta el enlace aquí.


utilizar

"lib": ["dom"]

en tsconfig.json

p.ej

{ "compilerOptions": { "lib": ["es5", "es6", "dom"], "outDir": "./dist/", "sourceMap": true, "noImplicitAny": true, "module": "commonjs", "target": "es6", "moduleResolution": "node", "jsx": "react" }, "include": ["./src/**/*"] }