0Pricing
TypeScript Academy · Ders

any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme

any'yi unknown ve daraltmayla değiştirin; küçük koruyucular ile onaylama işlevleri ekleyin; derlemeyi bozmadan katılık seçeneklerini aşamalı olarak etkinleştirin.

any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 2 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 2 dersten oluşur.

Giriş

Amaç: any kullanılan riskli noktaları ortadan kaldırmak. Güvenilmeyen değerler için unknown kullanmayı ve basit denetimlerle türü daraltmayı tercih edin. Küçük koruyucular ekleyecek ve katı seçenekleri adım adım etkinleştireceksiniz.

  • any → unknown
  • typeof/in/instanceof ile daraltma
  • iddia işlevleri

any kullanımının sakıncaları

any güvenliği devre dışı bırakır: yanlış yapılar veya dize işlemleri derleme zamanında fark edilmeden geçer ve daha sonra başarısız olur.

// any hides bugs
function avgBad(values: any): number {
  // Compiles even if values is not an array of numbers
  return values.reduce((a: number, b: number) => a + b, 0) / values.length
}

// Runtime crash examples:
// avgBad(123)
// avgBad(["1","2"]) // string addition!

unknown ve daraltma

Dışarıdan gelen girdiler için unknown kullanın. Array.isArray ve typeof ile türü daraltın, ardından güvenli biçimde hesaplama yapın.

// unknown forces checks
function avg(values: unknown): number {
  if (!Array.isArray(values)) throw new Error("values must be an array")
  const nums = values.filter((v): v is number => typeof v === "number")
  if (nums.length === 0) throw new Error("no numbers")
  const sum = nums.reduce((a, b) => a + b, 0)
  return sum / nums.length
}

// avg([1,2,3]) → 2; avg("oops") throws early with a clear message

Tür koruyucuları

Çağıranların türünü temiz biçimde daraltmak için bir koşul x is T oluşturun. Koruyucuları küçük tutun ve yapısal denetimlere odaklayın.

// Small predicate to reuse narrowing
export type User = { id: string; name: string }

export function isUser(x: unknown): x is User {
  return typeof x === "object" && x !== null
    && typeof (x as any).id === "string"
    && typeof (x as any).name === "string"
}

export function hello(x: unknown) {
  if (!isUser(x)) throw new Error("invalid user")
  return `Hello, ${x.name}`
}

İddia işlevleri

İddia işlevleri (asserts x is T) çalıştırıldıktan sonra türü daraltır. Bunları gerekli ön koşullar için kullanın ve anlaşılır iletilerle hata fırlatın.

// Assertion function throws or narrows
function assertUser(x: unknown): asserts x is { id: string; name: string } {
  if (typeof x !== "object" || x === null) throw new Error("not an object")
  const o = x as Record<string, unknown>
  if (typeof o.id !== "string" || typeof o.name !== "string") throw new Error("bad user")
}

export function greetUnsafe(x: unknown) {
  assertUser(x) // now x is narrowed after this call
  return `Hi ${x.name}`
}

Katılık planı

Plan:

  • noImplicitAny seçeneğini etkinleştirin ve önce yeni hataları düzeltin.
  • Dış girdiler için koruyucular ekleyin.
  • strictNullChecks seçeneğini etkinleştirin ve tanımsız değerleri açıkça ele alın.
  • Kalan any kullanımlarını ESLint ile izleyin ve zamanla azaltın.

unknown ve any denetimi

Hızlı denetim: Güvenilmeyen veriler için neden any yerine unknown tercih edilir?

Özet

Özet: any yerine unknown kullanın, küçük koruyucular veya iddialar ekleyin ve derlemeleri başarılı tutmak için katı seçenekleri küçük adımlarla artırın.

Sıkça Sorulan Sorular

“any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme” dersi ücretsiz mi?

Evet — “any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 2 dersten oluşur.

“any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme” dersinde ne öğreneceğim?

any'yi unknown ve daraltmayla değiştirin; küçük koruyucular ile onaylama işlevleri ekleyin; derlemeyi bozmadan katılık seçeneklerini aşamalı olarak etkinleştirin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 2 dersinin 1. dersidir.

“any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. any'yi ortadan kaldırma; unknown ve daraltmayı tercih etme
  2. Katı işaretleri kademeli olarak zorunlu kılma
← TypeScript Academy Sayfasına Dön