2017-10-06 1 views
1

J'écris une application web en tapuscrit et jQuery (en utilisant les fichiers de définition jQuery Definitely Typed). Un des problèmes que je continue de rencontrer est que beaucoup de fonctions jQuery retournent un nombre ou undefined. Cela jette le compilateur dactylographiée, et je l'ai revenu à l'aide d'une fonction d'utilité:Typescript - traitement indéfini à partir de jquery

function zero_if_undefined(value: number | undefined): number { 
    if value === undefined: 
     return 0; 
    return value; 
} 

Alors quelque chose comme: chemin

let width: number = zero_if_undefined($('#myEle').innerWidth()); 

Y at-il une meilleure (ou même en ligne) d'accomplir la même but? Ou est-ce la meilleure façon?

+1

'laisser largeur:. Nombre = $ ('# myEle') innerWidth() || 0; '? – soywod

Répondre

1

Je suivent généralement une approche simple, vous pouvez essayer d'utiliser

let width: number = $('#myEle').innerWidth() || 0; 

Si vous voulez améliorer la méthode zero_if_undefined essayer même dans la méthode.

function zero_if_undefined(value: number | undefined): number { 
    return value || 0 
} 

Pour votre information,

+!!undefined is also 0.