Bu özellik değiştiricileri bir özelliğin gerekli olup olmadığını ve yeniden atanıp atanmayacağını kontrol eder.
İsteğe bağlı (?)
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Bu özellik değiştiricileri bir özelliğin gerekli olup olmadığını ve yeniden atanıp atanmayacağını kontrol eder.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
İsteğe bağlı bir özellik T | undefined türüne sahiptir, bu nedenle derleyici sizi eksik durumu işlemeye zorlar — "cannot read property of undefined" hatalarını önler.
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 yalnızca derleme zamanıdır (çalışma zamanı uygulaması yok), ancak tür sisteminde değişmezliği belgeler ve zorunlu kılar, istenmeyen mutasyonları yakalar.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? gerçekten isteğe bağlı verileri modellemesini ve null-güvenliği zorunlu kılar; readonly değişmezliği ifade eder ve zorunlu kılar (yapılandırma, props ve istenmeyen durum mutasyonunu önlemek için harika).
Her ikisi de doğruluk kontrolünü derleyiciye iter.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap