આ સંપત્તિ સંશોધક નિયંત્રણ કરે છે કે શું સંપત્તિ આવશ્યક છે અને શું તેને પુનઃસોંપી શકાય છે.
Optional (?)
ts
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
આ સંપત્તિ સંશોધક નિયંત્રણ કરે છે કે શું સંપત્તિ આવશ્યક છે અને શું તેને પુનઃસોંપી શકાય છે.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
વૈકલ્પિક સંપત્તિનો પ્રકાર T | undefined છે, તેથી કમ્પાઇલર તમને ગેરહાજર કેસને સંભાળવા માટે દબાણ કરે છે — "cannot read property of undefined" બગ્સને રોકે છે.
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 માત્ર સંકલન-સમય પર છે (કોઈ રનટાઈમ અમલીકરણ નથી), પરંતુ તે પ્રકાર સિસ્ટમમાં અપરિવર્તનશીલતાને દસ્તાવેજ કરે છે અને તેને બળજબરી કરે છે, આકસ્મિક પરિવર્તનને ધરી પકડે છે.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? સત્ય વૈકલ્પિક ડેટા મોડેલ કરે છે અને null-સલામતીને બળજબરી કરે છે; readonly અપરિવર્તનશીલતા વ્યક્ત કરે છે અને તેને બળજબરી કરે છે (રૂપરેખા, props, અને આકસ્મિક સ્થિતિ પરિવર્તનને રોકવા માટે સરસ).
બંને સંકલક માટે શુદ્ધતા તપાસને દબાણ કરે છે.