blob: 991af984580fa1880e1060467ea004c33e4c155f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
---
title: 'SyntaxError: Unexpected ''#'' used outside of class body'
slug: Web/JavaScript/Reference/Errors/Hash_outside_class
translation_of: Web/JavaScript/Reference/Errors/Hash_outside_class
---
{{jsSidebar("Errors")}}
L'expression JavaScript "Unexpected '#' used outside of class body" (qu'on peut traduire par « '#' inattendu en dehors d'un corps de classe ») se produit lorsqu'un croisillon (« # ») est trouvé dans un contexte inattendu, notamment [en dehors d'une déclaration de classe](/fr/docs/Web/JavaScript/Reference/Classes/Private_class_fields). Les croisillons sont valides au début d'un fichier [comme commentaire d'interpréteur](/fr/docs/Web/JavaScript/Reference/Lexical_grammar), ou à l'intérieur d'une classe pour indiquer un champ privé. Vous pouvez également rencontrer cette erreur si vous oubliez d'encadrer un identifiant DOM entre quotes (la chaîne de caractères n'étant alors pas délimitée).
## Message
```js
SyntaxError: Unexpected '#' used outside of class body.
```
## Type d'erreur
[`SyntaxError`](/fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError)
## Quel est le problème ?
Un caractère \`#\` a été trouvé dans un contexte inattendu. Cela peut être à du code déplacé qui ne fait plus partie d'une classe, à un commentaire d'interpréteur (<i lang="en">hashbang</i>) situé sur une autre ligne que la première ou à l'oubli de quotes/guillemets autour d'un identifiant du DOM.
## Exemples
### Délimiteurs de chaîne manquants
Pour chaque cas, on peut avoir une légère erreur qui produit cette exception. Par exemple :
```js example-bad
document.querySelector(#un-élément)
```
Pourra être corrigé avec :
```js example-good
document.querySelector("#un-élément")
```
### En dehors d'une classe
```js example-bad
class ClasseAvecChampPrivé {
#champPrivé
constructor() {
}
}
this.#champPrivé = 42
```
Cela pourra être corrigé en déplaçant le champ privé à l'intérieur de la classe :
```js example-good
class ClasseAvecChampPrivé {
#champPrivé
constructor() {
this.#champPrivé = 42
}
}
```
## Voir aussi
- [`SyntaxError`](/fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError)
|