2017-02-27 1 views
0
communauté

Salut StackOverflow,Angular2 Tapuscrit déclarer la variable toute ReferenceError jette

Je code JavaScript à l'extérieur qui a fixé la variable js globale, mais cette variable n'existe pas dans certains cas. J'ai une classe de configuration dans Angular2 qui importe cette variable globale via declare var any. Dans la classe, j'ai une variable statique avec un opérateur ternaire qui vérifie si cette variable globale existe (! = Null) puis définit une instruction mais elle renvoie: Uncaught ReferenceError: IMPORTED_VAR n'est pas défini. Comment le résoudre?

declare var IMPORTED_VAR:any; 
export class ConfigurationClass { 
    public static CONF_VAR = IMPORTED_VAR ? IMPORTED_VAR : "SOMETHING"; 
} 
+0

vous n'avez pas besoin d'utiliser déclarer. il suffit d'utiliser var IMPORTED_VAR: n'importe quel –

Répondre

0

Enfin, je crée constructeur statique dactylographiée à la manipulation de cette exception

-1
declare var IMPORTED_VAR:any; 
export class ConfigurationClass { 
    public static CONF_VAR = (IMPORTED_VAR.hasOwnProperty("length") && IMPORTED_VAR.length>0) ? IMPORTED_VAR : "SOMETHING"; 
} 
+0

quand vous utilisez 'declare' alors il ne déclarera que la valeur réelle de l'instance donc dans le code ci-dessus nous pouvons vérifier si l'instance a des propriétés. Espérons que ça aide – anshuVersatile

+0

Malheureusement, il lance toujours ReferenceError si la variable importée n'existe pas. – falcon

+3

Bien que ce fragment de code puisse résoudre la question, [y compris une explication] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. – DimaSan