Come dichiarare un tipo nullable in Macchina?
Ho un’interfaccia a Macchina.
interface Employee{
id: number;
name: string;
salary: number;
}
Vorrei fare ‘stipendio’ come un campo nullable (Come possiamo fare in C#). È possibile fare in Macchina?
Tutti i campi in JavaScript (e in Dattiloscritto) può avere il valore
null
oundefined
.È possibile rendere il campo opzionale che è diverso da nullable.
Confrontare con:
[email protected]
ora)."strict" : false
Tipo di unione è nella mia mente opzione migliore in questo caso:
EDIT : Per funzionare come previsto, si dovrebbe consentire il
strictNullChecks
intsconfig
.Per essere più C# come definire il
Nullable
tipo come questo:Basta aggiungere un punto interrogativo
?
al campo facoltativo.ho avuto questa stessa domanda un po ‘ indietro.. di tutti i tipi in ts sono annullabili, perché il vuoto non è un sottotipo di tutti i tipi (a differenza, per esempio, la scala).
vedere se questo flusso di aiuti – https://github.com/bcherny/language-types-comparison#typescript
void
essere ‘sottotipo di tutti i tipi’ (tipo di fondo), fare riferimento a questo thread. Anche il grafico che hai fornito per la scala non è corretto così.Nothing
in scala è, infatti, il tipo di fondo. Dattiloscritto, bancomat, non hanno il tipo di fondale, mentre scala non.Basta implementare un tipo definito dall’utente, come i seguenti:
Tipo Nullable può invocare l’errore di runtime.
Quindi penso che è bene usare un opzione del compilatore
--strictNullChecks
e dichiararenumber | null
tipo. anche in caso di funzione nidificata, anche se il tipo di ingresso è null, il compilatore non può sapere quello che si potrebbe rompere, così mi consiglia di utilizzare!
(exclamination marchio).Di riferimento.
https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-type-assertions
mettere il valore del vostro numero indefinito