Le variabili dichiarate con 'const' non possono essere riassegnate ('x = 10'); per consentire la riassegnazione è necessario utilizzare la parola chiave 'let', ricordando che per gli oggetti const è permessa la mutazione dei campi interni ma non dell'istanza.
TYPEERROR_CONST_ASSIGN
→
In 'use strict' mode il motore JavaScript vieta e intercetta come errore fatale il tentativo di aggiungere proprietà personalizzate a tipi di dato primitivi immutabili come stringhe, numeri o booleani.
TYPEERROR_PRIMITIVE_PROP
→
L'operatore di destrutturazione ES6 ('const { id, name } = data') genera questo errore fatale se 'data' vale undefined o null; si previene fornendo un valore predefinito: 'const { id } = data || {}'.
TYPEERROR_DESTRUCTURE_UNDEFINED
→
Molto simile all'errore con undefined, compare quando l'oggetto interrogato è esplicitamente 'null' (ad esempio il risultato di 'document.getElementById()' quando l'elemento DOM non viene trovato nella pagina).
TYPEERROR_NULL_PROP
→
L'errore più diffuso nell'intero ecosistema JavaScript: compare quando si tenta di accedere a una proprietà, indice o metodo su una variabile che vale 'undefined' (es. 'obj.user.name' quando 'obj.user' è omesso); si risolve con l'optional chaining '?. (obj?.user?.name)'.
TYPEERROR_UNDEFINED_PROP
→
Compare quando si tenta di assegnare un valore a una proprietà nidificata ('user.profile.age = 30') ma l'oggetto intermedio ('user.profile') non è stato inizializzato e vale 'undefined'.
TYPEERROR_SET_UNDEFINED
→
Le classi definite con la sintassi ES6 'class Foo { ... }' richiedono obbligatoriamente l'operatore 'new Foo()'; chiamarle come una normale funzione ('Foo()') genera TypeError.
TYPEERROR_CLASS_CONSTRUCTOR_NO_NEW
→
La funzione 'JSON.stringify()' fallisce e solleva TypeError quando l'oggetto passato contiene riferimenti circolari (un nodo figlio punta a un nodo padre); si risolve rimuovendo i cicli o usando una funzione 'replacer' personalizzata.
TYPEERROR_CIRCULAR_JSON
→