2017-01-31 7 views
1

Wie ich eine solche Funktion geben?Typoskript isNullOrUndefined

function isNullOrUndefined(obj: any) { 
    return typeof obj === "undefined" || obj === null; 
} 

Wenn ich eine zurückgebe, bedeutet das, dass sie immernoch null oder undefiniert sein kann. Ich will es auf diese Weise nutzen:

let a: string | null | undefined = undefined; 
if (!isNullOrUndefined(a)) { 
    const b: string = a; 
} 

Antwort

2

gefunden!

function isNullOrUndefined<T>(obj: T | null | undefined): obj is null | undefined { 
    return typeof obj === "undefined" || obj === null; 
} 
+0

Ich verstehe nicht, was Sie genau hier zu tun versucht. – CoderPi

+0

Ich brauchte einen Typwächter, um 'String | zu konvertieren null | undefiniert 'in' string 'und benutze es sicher. Siehe strictNullChecks Flagge: https://www.typescriptlang.org/docs/handbook/compiler-options.html –

0

können Sie verwenden, um die optional - ?: Parameterdeklaration und nehmen den Vorteil loose equality (coercion) zwischen null und undefined diese Funktion zu vereinfachen:

function isNullOrUndefined<T>(obj?: T | null): boolean { 
    // null == undefined so this is true if obj = null or obj = undefined 
    return obj == null; 
} 
+1

Die Antwort des OP ist viel besser, als es eine Art Wache definiert. Die Rückgabe eines 'boolean' ist nicht so hilfreich. Außerdem hat der optionale Parameter nichts mit der Frage zu tun. –