85 votes

Le manuscrit ne trouve pas la fenêtre du nom ou le document

Pour les deux cas:

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

Je reçois error TS2304: Cannot find name 'window'.

Est-ce qu'il me manque quelque chose dans tsconfig.json pour un fichier de définition à installer?

Je reçois le message lors de l'exécution de tsc et 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"
    ]
}
 

Ma réponse: À utiliser avec tsconfig.json I cible es5 et utilisation lib: ["es2015", "dom"]

99voto

Nitzan Tomer Points 11798

Il semble que le problème est causé par le ciblage ES2016.
Ciblez-vous que, pour une raison? Si vous ciblez es6 l'erreur probablement disparaître.

Une autre option est de préciser les bibliothèques pour le compilateur à utiliser:

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

Qui devrait également faire l'erreur de s'en aller.

Je ne sais pas pourquoi les libs ne sont pas utilisés par défaut, dans les docs pour les options du compilateur , il états pour l' --lib option:

Remarque: Si l'option --lib n'est pas spécifié, par défaut, une bibliothèque est injecté. L' par défaut de la bibliothèque injecté est:
► Pour --target ES5: DOM,ES5,ScriptHost
► Pour --target ES6: DOM,ES6,DOM.Itératif,ScriptHost

Mais il ne fait pas état de ce que sont les bibliothèques par défaut lorsque le ciblage ES2016.
Il peut-être un bug, essayez d'ouvrir une question, si vous n'hésitez pas à partager le lien ici.

90voto

Damian Green Points 1654

utilisation

 "lib": ["dom"]
 

dans tsconfig.json

par exemple

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X