{{ fullName() }}
`, }) export class UserProfile { firstName = input(); lastName = input(); // `fullName` is not part of the component's public API, but is used in the template. protected fullName = computed(() => `${this.firstName()} ${this.lastName()}`); } ``` ### Değişmemesi gereken özellikler için `readonly` kullanın Angular tarafından başlatılan bileşen ve direktif özelliklerini `readonly` olarak işaretleyin. Bu, `input`, `model`, `output` ve sorgular tarafından başlatılan özellikleri içerir. readonly erişim değiştiricisi, Angular tarafından ayarlanan değerin üzerine yazılmamasını sağlar. ```ts @Component({ /*...*/ }) export class UserProfile { readonly userId = input(); readonly userSaved = output(); readonly userName = model(); } ``` Dekoratör tabanlı `@Input`, `@Output` ve sorgu API'lerini kullanan bileşenler ve direktifler için, bu tavsiye çıkış özelliklerine ve sorgulara uygulanır, ancak giriş özelliklerine uygulanmaz. ```ts @Component({ /*...*/ }) export class UserProfile { @Output() readonly userSaved = new EventEmitter