web-dev-qa-db-fra.com

Opérateur de coalescence nul dans React JS/Typescript

Nous avons l'opérateur de coalescence nul dans .NET et nous pouvons l'utiliser comme ci-dessous

string postal_code = address?.postal_code;

La même chose peut-on faire dans React JS?

Ce que j'ai trouvé comme nous pouvons le faire avec l'opérateur &&

dans address.ts file

string postal_code = address && address.postal_code;

ce dont j'ai besoin, comme la fonctionnalité .net, est possible dans TypeScript avec Réaction JS, est-ce possible?

quelque chose comme:

string postal_code = address?.postal_code // I am getting the error in this line if I try to use like .NET
5
Praveen Kumar

Ceci est une fonctionnalité proposée dans TypeScript, sous la légendaire Issue # 16

Elle ne sera pas introduite dans TypeScript tant que la spécification ECMAScript pour cette fonctionnalité n’est pas ferme, car l’implémentation de TypeScript doit suivre cette spécification - vous l’obtiendrez donc tôt, mais pas trop tôt dans ce cas.

Il est désigné comme l'un des suivants: 

  • Opérateur de propagation nulle
  • Opérateur existentiel
  • Opérateur de coalesce nul
3
Fenton

JavaScript n'a pas d'opérateur à coalescence nulle (ni TypeScript, qui généralement se limite à ajouter un calque de type et à adopter des fonctionnalités relativement éloignées du processus de conversion en JavaScript). Là est une proposition pour un opérateur JavaScript null- coalescing , mais ce n'est qu'à l'étape 1 de le processus .

Utiliser l’idiome && que vous avez décrit est une approche assez courante:

let postal_code = address && address.postal_code;

Si address est null (ou toute autre valeur falsy¹), postal_code sera cette même valeur; sinon, ce sera quelle que soit la valeur address.postal_code.


¹ Les valeurs de fausseté sont 0, "", NaN, null, undefined et bien sûr false.

0
T.J. Crowder