web-dev-qa-db-fra.com

Comment obtenir un type de variable en dactylographie?

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
}
30
Hongbo Miao

Pour : 

abc:number|string;

Utilisez l'opérateur JavaScripttypeof

if (typeof abc === "number") {
    // do something
}

TypeScript comprend typeof ????

Ceci s'appelle un typeguard. 

Plus

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

50
basarat

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
}
31
Laurens

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.

1
Kokkonda Abhilash