asserts defined
- TypeScript kursu
- İleri seviye
- Ders 42/57
- 4 dk
asserts x is defined ile null kontrolünü öğrenirsin.
asserts defined
asserts x is defined özel bir assertion biçimidir; null ve undefined dışındaki tüm türlere daraltır. Bir değerin var olduğunu garanti altına almak için kullanılır; özellikle opsiyonel veya nullable alanlarla çalışırken yararlıdır.
function assertDefined(x: unknown): asserts x is defined {
if (x === null || x === undefined) {
throw new Error("value is null or undefined");
}
}
const maybe: string | null = "hello";
assertDefined(maybe);
maybe.toUpperCase(); // string, null daraltıldıNullable alanlarla kullanım
asserts x is defined, nullable (örneğin string | null) bir değeri string'e daraltmak için kullanılır. Opsiyonel özelliklerle çalışırken, değerin var olduğunu garanti altına alır ve sonraki kod null kontrolü olmadan güvenli kullanım sağlar.
interface User {
email: string | null;
}
function getEmail(u: User): string {
assertDefined(u.email);
return u.email; // string, null daraltıldı
}Uygulama assertDefined ile nullable email işle
assertDefined(x: unknown): asserts x is defined fonksiyonunu tanımla (içinde x === null || x === undefined ise throw new Error("null or undefined") olsun). User interface'ini email: string | null özelliğiyle tanımla. getEmail(u: User): string fonksiyonunu yaz: assertDefined(u.email) çağır, sonra u.email döndür. console.log(getEmail({ email: "a@b.com" })) ile sonucu yazdır.
Başlangıç kodu
// assertDefined fonksiyonunu tanımla (asserts x is defined, throw ile)
// User interface tanımla (email: string | null)
// getEmail(u: User): string fonksiyonunu assertDefined ile yaz
// getEmail({ email: "a@b.com" }) sonucunu yazdırÖrnek çözüm
function assertDefined(x: unknown): asserts x is defined {
if (x === null || x === undefined) {
throw new Error("null or undefined");
}
}
interface User {
email: string | null;
}
function getEmail(u: User): string {
assertDefined(u.email);
return u.email;
}
console.log(getEmail({ email: "a@b.com" }));Beklenen çıktı
a@b.com
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 asserts x is defined ne yapar?
- Değeri undefined yapar
- Türünü string yapar
- Çalışma zamanında değer üretir
- null ve undefined dışındaki türlere daraltır Doğru cevap
Açıklama: asserts x is defined, null ve undefined dışındaki tüm türlere daraltır; nullable bir değeri non-null türüne indirir ve sonraki kodu güvenli kılar.
2 asserts x is defined
function assertDefined(x: unknown): ____ {
if (x === null || x === undefined) throw new Error("null or undefined");
}
function assertDefined(x: unknown): asserts x is defined {
if (x === null || x === undefined) throw new Error("null or undefined");
}
Açıklama: asserts x is defined dönüş türü, fonksiyon tamamlandığında x'in null veya undefined olmadığını TypeScript'e söyler.
3 asserts defined parçaları
| Kavram | Anlamı |
|---|---|
asserts x is defined |
null ve undefined daraltır |
nullable değer |
defined ile string'e indirir |
x === null || x === undefined |
gövde kontrolü |
opsiyonel özellik |
defined ile güvenli erişim |