La machine ne peut pas trouver le nom de la fenêtre ou du document
Pour les deux cas:
document.getElementById('body');
//or
window.document.getElementById('body');
- Je obtenir error TS2304: Cannot find name 'window'.
Ai-je raté quelque chose dans tsconfig.json
pour un fichier de définition je dois installer?
Je reçois le message lors de l'exécution de tsc
et dans 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:
Pour une utilisation avec tsconfig.json
je cible es5
et l'utilisation lib: ["es2015", "dom"]
- J'ai pas à pas à l'aide de Angular2
- Où obtenez-vous cette erreur? Dans votre IDE, ou lors de l'exécution de
tsc
? Quelle est votretsconfig.json
fichier? Vous devez fournir les informations les plus pertinentes si vous voulez de l'aide - J'ai ajouté les informations qui vous sont demandées.
Vous devez vous connecter pour publier un commentaire.
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:
Qui devrait également faire disparaître l'erreur.
Je ne sais pas pourquoi les libs ne sont pas utilisés par défaut, dans le docs pour les options du compilateur c'unis pour le
--lib
option:Mais il ne fait pas état de ce que sont les bibliothèques par défaut lors du ciblage de
ES2016
.Il peut-être un bug, essayez d'ouvrir une question, si vous n'hésitez pas à partager le lien ici.
--lib
s devrait être explicitement déclarée à la place de certaines arbitraire par défaut."lib": ["dom"]
danstsconfig.json
. Ce qui a fonctionné pour moi.es6
fonctionnalité (et ci-dessus). Lelib
option a des valeurs par défaut basé sur letarget
. Vous pouvez remplacer les valeurs par défaut si vous êtes sûr que l'environnement lors de l'exécution inclut les fonctionnalités.utilisation
dans le tsconfig.json
par exemple
tsc
pour vous, vous n'êtes pas si facilement en mesure de modifier la CLI args est passé, mais vous avez presque certainement de contrôletsconfig.json
)