Disse egenskapsmodifikatorene kontrollerer om en egenskap er obligatorisk og om den kan tilordnes på nytt.
Valgfri (?)
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Disse egenskapsmodifikatorene kontrollerer om en egenskap er obligatorisk og om den kan tilordnes på nytt.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
En valgfri egenskap har type T | undefined, så kompilatoren tvinger deg til å håndtere tilfellet der verdien er fraværende — og forhindrer «cannot read property of undefined»-feil.
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 1, y: 2 };
p.x = 5; // ❌ Error: cannot assign to readonly property
// arrays too
const nums: readonly number[] = [1, 2, 3];
nums.push(4); // ❌ push doesn't exist on readonly array
readonly er kun på kompileringstidspunktet (ingen kjøretidshåndhevelse), men det dokumenterer og håndhever uforanderlighet i typesystemet, og fanger opp utilsiktede mutasjoner.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? modellerer genuint valgfrie data og tvinger null-sikkerhet; readonly uttrykker og håndhever uforanderlighet (flott for config, props og forhindring av utilsiktet tilstandsmutasjon).
Begge presser korrekthetskontroll inn i kompilatoren.
Et bibliotek av IT-intervjuspørsmål med detaljerte svar — fra Junior til Senior.
Doner