Proje: Görev Struct'ını Tanımlama
Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası — ders 45 / 73.
İlk TypeScript projenize hoş geldiniz! Önümüzdeki birkaç ders boyunca, TypeScript'in iyi yapılandırılmış, tip güvenli kod oluşturmaya nasıl yardımcı olduğunu gösteren eksiksiz bir görev listesi uygulaması oluşturacaksınız. Bu proje, şimdiye kadar öğrendiğiniz birçok kavramı birleştirecek: interfaces, literal types, arrays ve functions.
Herhangi bir görev yönetim sisteminin temeli, bir görevin neye benzediğini tanımlamaktır. Bu derste, uygulamanızdaki tek bir görevi temsil eden veri yapısını oluşturacaksınız. Bu yapının temel bilgileri yakalaması gerekir: benzersiz bir tanımlayıcı, görevin ne hakkında olduğu ve mevcut durumu.
Task arayüzünüz, status özelliği için literal types kullanacaktır; bu da durumun yalnızca 'todo', 'in-progress' veya 'done' gibi birkaç belirli dize değerinden biri olabileceği anlamına gelir. Bu yaklaşım yazım hatalarını önler ve uygulamanız genelinde tutarlılık sağlar; TypeScript, geçersiz bir status değeri kullanma girişimlerini yakalayacaktır.
Bu proje yapısı, yeni görevler ekleme, durumlarını güncelleme ve görevleri mevcut durumlarına göre filtreleme dahil olmak üzere gelecek derslerde oluşturacağınız tüm işlevsellikler için temel plan görevi görecektir.
Görev
KolayAşağıdaki özelliklere sahip Task adında bir arayüz (interface) oluşturun:
numbertüründeidstringtüründetitle- Sadece şu değişmez değerlerden biri olabilen
status:'todo','in-progress'veya'done'
Task arayüzünüzü kullanarak aşağıdaki değişkenleri oluşturun:
- id değeri
1, title değeri"Learn TypeScript interfaces"ve status değeri'todo'olan,TasktüründefirstTaskadında bir değişken oluşturun - id değeri
2, title değeri"Build task management app"ve status değeri'in-progress'olan,TasktüründesecondTaskadında bir değişken oluşturun - id değeri
3, title değeri"Write unit tests"ve status değeri'done'olan,TasktüründethirdTaskadında bir değişken oluşturun
Task türünde bir parametre kabul eden ve "Task [id]: [title] - [status]" formatında bir string döndüren getTaskInfo adında bir fonksiyon oluşturun.
Aşağıdaki çıktıları ayrı satırlara yazdırın:
firstTaskilegetTaskInfofonksiyonunu çağırın ve sonucu yazdırınsecondTaskilegetTaskInfofonksiyonunu çağırın ve sonucu yazdırınthirdTaskilegetTaskInfofonksiyonunu çağırın ve sonucu yazdırınfirstTaskdeğişkeninin status değerini yazdırınsecondTaskdeğişkeninin title değerini yazdırın
Kendin dene
// YAPILACAK: Kodunuzu buraya yazın
// Task arayüzünü oluşturun
// Görev değişkenlerini oluşturun
// getTaskInfo fonksiyonunu oluşturun
// Gerekli çıktıları yazdırınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
TypeScript'e Giriş bölümündeki tüm dersler
1TS ile Başlarken
TypeScript Nedir?Neden TypeScript Kullanılır?İlk TypeScript KodunuzDerleme Süreci ve HatalarÖzet: TS'ye Giriş4Fonksiyonlarla Çalışmak
Parametre ve Dönüş Değerlerini TiplendirmeArrow Fonksiyonlarını Tiplendirme'void' Dönüş Tipi'?' ile Opsiyonel ParametrelerVarsayılan Parametre DeğerleriRest Parametrelerini TiplendirmeFonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar Oluşturma7Proje: Basit Bir Görev Listesi
Proje: Görev Struct'ını TanımlamaGörev Ekleme Fonksiyonu2Temel Tipler
Temel Tipler: str, num, boolean'any' Tipi: Kaçış Yolu'unknown' Tipi'null' ve 'undef' ile ÇalışmakTip Çıkarımı İş BaşındaAçık Tip BelirlemeleriÖzet: Temel Tipler Pratiği5Tipler: Takma Adlar, Unionlar ve Kesişimler
İlkel Tipler için Tip Takma AdlarıUnion Tipler ('|')Union Tipler ile ÇalışmakLiteral TiplerKesişim Tipleri ('&')Tip Takma Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Veri Yapısı: Diziler ve Tuple
Tipli DizilerDiziler için 'readonly' BelirleyicisiTuple Nedir?Tuple Tanımlama ve ErişmeTuple DestructuringReadonly Tuple'larÇok Boyutlu Tipli DizilerDizilerle Spread OperatörüÖzet: Diziler ve Tuple'lar6Nesneleri ve Interface'leri Tiplendirme
Satır İçi Nesne Tipi BelirtimleriNesneler için Type Alias KullanımıInterface'lere GirişInterface'ler ve Type Alias'ların KarşılaştırılmasıOpsiyonel ve Readonly ÖzelliklerInterface ve Tipleri GenişletmeInterface'lere Metot EklemeÖzet: Nesne Yapılarını Tanımlama