Meydan okuma 4: Mini uygulama
- TypeScript kursu
- Başlangıç
- Ders 89/89
- 6 dk
Başlangıç seviyesinin tamamını yoklayan bir görev çözersin.
Meydan okuma 4: Mini uygulama
Bu meydan okuma başlangıç seviyesinin tamamını yoklar. Türler, fonksiyonlar, union ve intersection'ı birleştirerek bir mini görev uygulaması yazacaksın. Önce Task modeli ve fonksiyonları, sonra PrioritizedTask türünü tanımlayacaksın.
Uygulama Task modeli ve fonksiyonlar
Task arayüzünü tanımla: id: string, title: string, done: boolean. addTask(tasks: Task[], title: string): void fonksiyonu yaz (id = String(tasks.length + 1), done = false). completeTask(tasks: Task[], id: string): void fonksiyonu yaz (bul ve done = true yap). Bir görev ekle, tamamla ve done değerini yazdır.
Başlangıç kodu
// Task arayüzü: id, title, done
// addTask(tasks: Task[], title: string): void yaz
// completeTask(tasks: Task[], id: string): void yaz
// id'ye göre bul, done true yap
// bir görev ekle, tamamla ve done yazdırÖrnek çözüm
interface Task { id: string; title: string; done: boolean; }
function addTask(tasks: Task[], title: string): void {
tasks.push({ id: String(tasks.length + 1), title, done: false });
}
function completeTask(tasks: Task[], id: string): void {
const task = tasks.find(t => t.id === id);
if (task) {
task.done = true;
}
}
const tasks: Task[] = [];
addTask(tasks, "Süt al");
completeTask(tasks, "1");
console.log(tasks[0].done);Beklenen çıktı
true
Uygulama PrioritizedTask birleştir
Priority türünü "low" | "high" olarak tanımla. Task arayüzünü tanımla: id: string, title: string, done: boolean. PrioritizedTask türünü Task & { priority: Priority } olarak tanımla. Bir nesne oluştur ve priority alanını yazdır.
Başlangıç kodu
// Priority türü: "low" veya "high"
// Task arayüzü tanımla (id, title, done)
// PrioritizedTask = Task & { priority: Priority }
// bir nesne oluştur ve priority yazdırÖrnek çözüm
type Priority = "low" | "high";
interface Task { id: string; title: string; done: boolean; }
type PrioritizedTask = Task & { priority: Priority };
const pt: PrioritizedTask = {
id: "1",
title: "Süt al",
done: false,
priority: "high"
};
console.log(pt.priority);Beklenen çıktı
high
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir mini uygulamada önce ne yapılır?
- Önce çıktı yaz
- Hemen console.log yap
- Türleri ve arayüzleri tanımla Doğru cevap
- Önce fonksiyonları çağır
Açıklama: Sağlam bir uygulama önce türleri tanımlar; sonra fonksiyonlar bu türler üzerinde çalışır. Çıktı yazma en son adımdır.
2 done alan türünü tamamla
interface Task { id: string; title: string; done: ____; }
interface Task { id: string; title: string; done: boolean; }
Açıklama: done, bir görevin tamamlanıp tamamlanmadığını belirten mantıksal alandır; bu yüzden boolean. string ve number yanlış tür, "yes" | "no" gereksiz karmaşıklık.
3 Task model parçaları
| Kavram | Anlamı |
|---|---|
interface Task |
Görev modeli |
id: string |
Kimlik alanı |
done: boolean |
Tamamlanma durumu |
title: string |
Başlık alanı |