angular - Hvis-betingelsen returnerer false hvis et tall eksisterer, men er 0
Jeg har en klasse med et valgfritt felt startDateHour:
export class Test {
startDateHour?: number;
// more fields, constructor etc.
}
Jeg vil gjøre noe, hvis startDateHour eksisterer:
if (test.startDateHour) {
//do something
}
Problemet er at denne sjekken ikke fungerer som forventet når startDateHour er 0. Hvis den er 0, eksisterer den fortsatt og jeg vil kjøre koden, men if (startDateHour) returnerer false i det tilfellet.
Selvfølgelig kunne jeg gjort noe som:
if (test.startDateHour || test.startDateHour === 0) {
// do something
}
Men finnes det en bedre måte, som en sjekk som gjør begge tingene ovenfor?
Svar #1
0 er falsk. Men den nyeste versjonen av TypeScript tilbyr en annen operator kalt Nullish Coalescing. Avhengig av hva du ønsker å gjøre innenfor if-setningen, kan det være at du vil bruke den.
Les om det her for eksempel: https://dev.to/obinnaogbonnajoseph/optional-chaining-and-nullish-coalescing-typescript-3-7-5899
Svar #2
Prøv dette,
if(!isNaN(test.startDateHour)) {
}
