Modül dersleri (1/2)
Sınıflar ve Değiştiriciler
TypeScript, standart ES6 sınıflarını statik yazma, erişim değiştiriciler ve kısayol parametre özellikleri gibi güçlü Nesneye Dayalı Programlama (OOP) özellikleriyle genişletir.
Sınıflar ve Erişim Değiştiriciler
TypeScript'te üç ana anahtar kelimeyi kullanarak sınıf üyelerinin, özelliklerin ve yöntemlerin görünürlüğünü denetleyebilirsiniz:
public(varsayılan): üyeye her yerden erişilebilir.private: üyeye yalnızca onu tanımlayan sınıf içinden erişilebilir.protected: üyeye sınıf ve onun alt sınıfları (kalıtım) içinden erişilebilir.
class Animal {
public name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public getAge(): number {
return this.age;
}
}Parametre Özellikleri
TypeScript, bir sınıf üyesini doğrudan yapıcıda bildirmek ve başlatmak için kısa bir sözdizimi sunar. Bir yapıcı parametresinin önüne bir erişim değiştirici eklendiğinde, özellik otomatik olarak oluşturulur ve atanır:
// This syntax does exactly the same as the previous example!
class Animal {
constructor(
public name: string,
private age: number,
) {}
}Arayüzlerin Uygulanması
Bir sınıf, implements anahtar sözcüğünü kullanarak bir veya daha fazla arabirim uygulayabilir. Bu, gerekli tüm yöntemleri ve özellikleri tanımlayarak sınıfın belirli bir sözleşmeye bağlı kalmasını sağlar:
interface Flyable {
fly(altitude: number): void;
}
class Bird implements Flyable {
constructor(public name: string) {}
fly(altitude: number): void {
console.log(`${this.name} is flying at ${altitude} meters.`);
}
}Miras ve super
TypeScript, sınıf mirasını tam olarak destekler. Bir sınıf, extends anahtar sözcüğünü kullanarak başka bir sınıfı genişletebilir. Alt sınıf bir yapıcı tanımlıyorsa, this'ye erişmeden önce super() işlevini kullanarak temel sınıf yapıcısını çağırmalıdır:
class Person {
constructor(public name: string) {}
}
class Student extends Person {
constructor(
name: string,
public grade: number,
) {
super(name); // Calls the Person constructor
}
}Kendin dene
Alıştırma 1: Araba Sınıfı ve Özel Değiştirici
Araba adında bir sınıf bildirin. Yapıcıda tanımlanmış salt okunur bir model özelliğine (dize), 0 olarak başlatılan özel bir kilometre özelliğine (sayı), kilometreyi mil kat artıran bir genel yöntem Drive(miles: number): void'e ve kilometreyi döndüren bir getter veya yöntem getMileage(): numarasına sahip olmalıdır.
İpucu göster
Özel kilometre kullanın: sayı = 0; değişkeni özel yapmak ve kısayol olarak yapıcı(genel salt okunur model: string) {} yapmak için.
3 denemeden sonra çözüm mevcut
Alıştırma 2: Şekil Arayüzü ve Çember Sınıfı
Shape arayüzünü uygulayan Circle sınıfını uygulayarak kodu tamamlayın. Sınıfın yapıcı aracılığıyla ayarlanmış salt okunur bir radius özelliğine (sayı) sahip olması ve getArea(): number (Math.PI * radius * radius değerini döndüren) uygulamasını yapması gerekir.
İpucu göster
Circle sınıfında uygulamalı Shape'i kullanın ve getArea(): number yöntemini tanımlayın.
3 denemeden sonra çözüm mevcut
Alıştırma 3: Soyut Araç Sınıfı ve Motosiklet Alt Sınıfı
Soyut sınıf Araç'ı genişleten Motosiklet adında bir sınıf bildirin. 'Motorcycle' dizesini ve ardından make (this.make) ve 'start' ifadesini döndürmek için start() yöntemini uygulamalıdır.
İpucu göster
Motorcycle extends Araç sınıfını kullanın ve doğru dizeyi döndüren start(): string yöntemini uygulayın.
3 denemeden sonra çözüm mevcut
Alıştırma 4: Parametre Özellikleri ve Kalıtım
Yapıcı kısayolunu kullanarak salt okunur bir özellik kimliğini (sayı) ve ortak özellik adını (dize) tanımlayan Çalışan adında bir sınıf oluşturun. Ardından, Employee'i genişleten ve yapıcı aracılığıyla bir kamu mülkiyeti departmanı (dize) ekleyen bir Geliştirici sınıfı oluşturun.
İpucu göster
Geliştirici yapıcısında super(id, name) öğesini kullanın ve özelliği yapıcı aracılığıyla tanımlamak için kamu departmanını kullanın.
3 denemeden sonra çözüm mevcut