I\'ve seen code snippets like these:
export interface IUser {
email?: string;
firstName?: string;
lastName?: string;
}
But why
In TypeScript, <name>?: <typename>
a shorthand for <name>: <typename> | undefined
.
This indicates to the type system that a symbol may contain a value of the indicated type or it may contain the value undefined
(which is like null
).
This is important when the (new in TypeScript 2) --strictNullChecks
option is enabled. The documentation on Null- and undefined-aware types option is probably where you should start to understand why this is useful.
If I am not mistaked, its to indicate that its optional, that means that it can be null.
It means they can be there but dont have to be. It allows for optional field names. It can be quite common to use.
An example use is allowing users on a website to have an optional display name.