web-dev-qa-db-fra.com

TypeScript a-t-il un opérateur Null-conditionnel?

Y at-il un opérateur comme? dans TypeScript qui peut vérifier si la variable est nulle ou non définie comme Kotlin? Comme

person?.getName()?.firstName ?: "None"
17
Da Yin

Non, pour l'instant, la navigation sécurisée n'est toujours pas implémentée dans TypeScript: https://github.com/Microsoft/TypeScript/issues/16

Cependant, selon les dernières notes de la réunion de normalisation, il a été proposé, alors peut-être que la v3 :)

https://github.com/tc39/agendas/blob/master/2017/07.md

15
Loonquawl

J'ai rencontré la même situation et les suivants ont fonctionné pour moi. 

Tout d'abord, j'ai défini une classe séparée avec une propriété pouvant être null:

export class Foo {
    id: number; //this can be null
}

Ensuite, dans ma classe principale, j'ai défini une propriété foo sur ce nouveau type:

foo: Foo

Après cela, j'ai pu l'utiliser comme ceci:

var fooId = (this.foo || ({} as Foo)).id;

C'est le cas le plus proche que je puisse avoir pour avoir une propagation nulle dans une version actuelle de TypeScript.

5
Andrii Stashko

En fait, cela est lié à javascript null safety discussion qui est mentionné dans cette réponse . Je suppose qu'ils veulent que cela soit supporté sur javascript avant de passer à TypeScript.

1
ApriOri

Je l'ai utilisé dans mon code pour vérifier null

this.firstname = (this.firstname != null) ? this.firstname : this.firstname;

Cela pourrait faire jusqu'à ce que v3 soit sorti

1
Ebuka