What does -? mean in TypeScript?
Solution 1:
+
or -
allows control over the mapped type modifier (?
or readonly
). -?
means must be all present, aka it removes optionality (?
) e.g.:
type T = {
a: string
b?: string
}
// Note b is optional
const sameAsT: { [K in keyof T]: string } = {
a: 'asdf', // a is required
}
// Note a became optional
const canBeNotPresent: { [K in keyof T]?: string } = {
}
// Note b became required
const mustBePreset: { [K in keyof T]-?: string } = {
a: 'asdf',
b: 'asdf' // b became required
}
More
I did a lesson on these mapped type modifiers : https://www.youtube.com/watch?v=0zgWo_gnzVI 🌹