J'ai une variable.
abc:number|string;
Comment puis-je vérifier son type? Je veux faire quelque chose comme ci-dessous:
if (abc.type === "number") {
// do something
}
Pour :
abc:number|string;
Utilisez l'opérateur JavaScripttypeof
:
if (typeof abc === "number") {
// do something
}
TypeScript comprend typeof
????
Ceci s'appelle un typeguard.
Pour les classes, vous utiliseriez instanceof
, par exemple.
class Foo {}
class Bar {}
// Later
if (fooOrBar instanceof Foo){
// TypeScript now knows that `fooOrBar` is `Foo`
}
Il existe également d'autres types de gardes, par exemple: in
etc https://basarat.gitbooks.io/TypeScript/content/docs/types/typeGuard.html
J'aimerais ajouter que TypeGuards ne fonctionne que sur des chaînes ou des nombres, si vous souhaitez comparer une instance d'utilisation d'objet
if(task.id instanceof UUID) {
//foo
}
J'ai vérifié une variable s'il s'agit d'un booléen ou non comme ci-dessous
console.log(isBoolean(this.myVariable));
De même nous avons
isNumber(this.myVariable);
isString(this.myvariable);
etc.