2016-05-23 2 views
4

A falsch (und jetzt fest) Code in unserer App diesen Fehler ausgelöst:Typeerror: kann Eigenschaft 'FOO' auf string 'BAR' erstellen

TypeError: Cannot create property 'FOO' on string 'BAR' 

Aber Javascript erlaubt völlig frei Eigenschaften auf einem String-Variable zu setzen. Ich habe es gerade in der Chrome-Konsole ausprobiert:

'BAR'.FOO = 'hello' 
'BAR'['FOO'] = 'hello' 

Und es funktioniert perfekt.

Also in welchem ​​Kontext löst der JS-Interpreter diesen Fehler aus?

Der ursprüngliche Code wird in Typescript geschrieben und dann mit Babel transpiliert. Dies ist ein Laufzeit Fehler. Ich nehme an, das hängt nicht mit Typoskript zusammen, da andere Leute einen ähnlichen Laufzeitfehler melden, z. here und here

Antwort

11

So in which context do the JS interpreter trigger this error ?

Strict mode.

'use strict'; 
 
'BAR'.FOO = 'test';

+2

Und Chrome-Konsole ist nicht im Strict-Modus standardmäßig ... Danke! – Offirmo

Verwandte Themen