Makaleyi arkadaşlarınızla paylaşarak sitenin geliştirilmesine yardımcı olun!

TypeScript Nullable'a Giriş

TypeScript Nullable, null değerine sahip özel bir null türüdür. TypeScript Null, void'e çok benzer, yani kendi başına kullanışlı değildir. Varsayılan olarak, null, diğer tüm alt türlerin bir alt türüdür; bu, kullanıcının, dize, sayı, vb. gibi veri türlerinden herhangi birine null atayabileceği anlamına gelir. Ayrıca, kullanıcının, boş türün başka bir türe atanmasını durduramayacağı anlamına gelir. , bir kullanıcı atamayı engellemeye çalışsa bile. Null'un mucidi Tony Hoare, bu sınırlamanın 'milyon dolarlık bir hata' olduğunu söyledi.

Ancak, -strict null checks bayrağı kullanıldığında, yukarıda belirtilen sınırlama düzeltildi. Bir kullanıcı bir değişken bildirmeye çalıştığında, otomatik olarak null değerine sahip olmaz. Null türü, türlerinden herhangi birine yalnızca bilinmeyene atanabilir. Bunlar yalnızca bir birleşim türü kullanıldığında açıkça dahil edilebilir.

Sözdizimi:

TypeScript nullable için belirli bir sözdizimini izlemiyoruz, ancak bir bayrak kullanıyoruz, yani

-strictNullChecks

Açık veya kapalı olan bayrağa göre Nullable uygulayabiliriz.

Nullable için Kurallar ve Düzenlemeler

Önceden, TypeScript'te türleri boş olarak açıkça tanımlamanın bir yolu yoktu. Ancak yine de herhangi bir kontrol modu olmadan kullanılabilir.

JavaScript uygulamalarımızda, TypeError veya ReferenceError veren, çoğunlukla boş tür ve değerlerin yanlış kullanımı olan birçok hata tetikleniyor.Bu tür hatalar uygulamaları çökertir ve geliştiricilerin hatayı bulup düzeltmesi büyük bir sorun haline gelir, bu da kelimenin tam anlamıyla verimli bir şekilde zaman harcamaktan daha fazla zaman alır.

TypeScript, kullanıcılara bu tür hatalara karşı koruma sağlar. TypeScript statik olarak yazılan bir dil olduğundan, kullanıcıların bilinmeyen ve herhangi bir tür kullanarak tip kontrolünü devre dışı bırakmalarına izin verir. tsconfig.json'da yapılandırılan bir parametre olan strictNullChecks yapılandırmasında, if false olarak ayarlanırsa boş türler her zaman birbirinin tanımlı türün bir alt türüdür. strictNullChecks'i true olarak ayarlamak, boş türü ve diğer türleri ayırır.

TypeScript Nullable Örnekleri

TypeScript null değerinin kodda nasıl göründüğüne dair bir örnek,

interface Çalışan {
empName: string;
empID: sayı;
empLob: dize;
}
let emp: Çalışan={
empName: "Karthik",
emID: null,
empLob: "RCL",
}

Yani burada 3 değişkenli bir Çalışan arayüzü düşünüyoruz; empName, Id ve Lob. empID'yi null olarak atadık. -strictNullChecks işaretini AÇIK olarak tutuyoruz. Bu örneği uygulayalım ve hatanın ne olduğunu veya çıktısının ne olduğunu görelim.

Örnek 1: TypeScript Nullable: -strictNullChecks flag ON

Kod:

interface Çalışan {
empName: string;
empID: sayı;
empLob: dize;
}
let emp: Çalışan={
"empName: Karthik,
"emID: null,
"empLob: RCL
"
}

Çıktı:

Yani, evet, burada bir hata alıyoruz. 'Boş' yazın, 'sayı' yazmak için atanamaz.

Yukarıdaki bu hata -strictNullChecks KAPALI ise görünmez ve bu nedenle TypeScript derleyicisi kodun derlenmesine izin verir.

Flag -strictNullChecks KAPALI olduğunda, kodu koddaki boş değerlere başvurmaktan korur. Bayrak, komut satırı derleyicisine bir seçenek olarak eklenebilir veya tsconfig.json dosyasına bir bağımlılık olarak eklenebilir.

Örnek 2: TypeScript Nullable Flag kullanımı.

Kod:

"let sampleNullstring=Educba;"
sampleNullstring=null;
konsol.log('sampleNullstring: ', sampleNullstring)
örnekNumberNull olsun: sayı - boş=45;
konsol.log(sampleNumberNull)
sampleNumberNull=null;
sampleNumberNull=tanımsız;
konsol.log('sampleNumberNull: ', sampleNumberNull)

Çıktı:

Bir string tipini null değerine, bir sayıyı tanımsıza atarken aşağıdaki hatalarla karşılaşıyoruz.

'sampleNumberNull' tipini null veya bir sayı olarak bildiriyoruz, ancak undefined atamak hata verecektir.

TypeScript sürüm 3.7'den itibaren, null yapılabilir türler için isteğe bağlı zincirleme kullanımı çok daha kolaydır. İsteğe bağlı zincirleme ile bir örnek daha görelim.

Örnek 3: TypeScript isteğe bağlı zincirlemeyle geçersiz kılınabilir

Kod:

function fAdd(x: sayı, y?: sayı) {
dönüş x + (y ?? 0);
}
konsol.log(fAdd(5, 2));
konsol.log(fAdd(3, tanımsız));
konsol.log(fAdd(4, ));
konsol.log(fAdd(6, null));

Çıktı:

Yani, burada isteğe bağlı zincirlemeyi kullanıyoruz ?: y değerinin bir sayı mı yoksa tanımsız bir parametre mi olduğunu kontrol etmek için.

Ancak boş değer atandığında aşağıdaki gibi bir hata veriyor,

Örnek 4: TypeScript Null yapılabilir kontroller

Kod:

// Derlenmiş -strictNullChecks
x olsun: sayı - boş;
y olsun: sayı - tanımsız - boş;
z olsun: sayı;
konsol.log(x=14);
konsol.log(y=15);
konsol.log(z=16);
konsol.log(x=21);
konsol.log(y=null);
konsol.log(z=tanımsız);
konsol.log(x=tanımsız);
konsol.log(y=25);
konsol.log(z=null);

Çıktı:

Atanan değerler çıktı olarak görüntülenecek, ancak kavramı daha iyi anlamak için önce hata günlüklerini bilmemiz gerekiyor.

'Tanımsız' türü, 'sayı' türüne atanamaz: Bu, tanımsız olarak atanan z türü içindir.

'Tanımsız' türü, 'sayı' yazmak için atanamaz - null': Bu, tanımsız olarak atanan x tipi içindir.

'null' tipi, 'number' tipine atanamaz: Bu, null olarak atanan z tipi içindir.

Bununla, 'TypeScript Nullable' başlığımızı sonlandırıyoruz. Nullable'ların ne olduğunu ve nasıl tanımlandığını gördük. -strictNullChecks bayrağının kullanılması, hangi Null veya tanımsız değişkenlerin atlandığına bağlı olarak AÇIK veya KAPALI olacak. Yukarıda, değer türleri atanırken TypeScript Nullable'da kullanıcının hangi hatayla karşılaştığını açıkça gösteren birkaç örneği çözdük. Bu kavramı anlamak için burada listelediğimiz birkaç kural da var. Ayrıca, İsteğe Bağlı Zincirleme, TypeScript 3.7 sürümünden çok popüler olan ve TypeScript Nullable konsepti için çok daha kullanışlı olan kavramlardan biridir.Teşekkürler! Mutlu Öğrenme!!

Makaleyi arkadaşlarınızla paylaşarak sitenin geliştirilmesine yardımcı olun!