0Pricing
TypeScript Academy · Ders

İşlevlerde void Türü

İşlevlerin dönüş konumlarında void türünün undefined türünden farkını öğrenin.

İşlevlerde void Türü, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. 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 4 dersten oluşur.

`void` Dönüş Türü

void, kullanışlı bir değer döndürmeyen bir işlevi tanımlar. İşlev yine de tamamlanır; yalnızca kullanmanız gereken bir şey üretmez. Yan etkileri için çağrılan işlevlerin türüdür.

function log(message: string): void {
  console.log(message);
}
log('Hello void');

Çıkarılan `void`

Bir işlevde return ifadesi yoksa (veya yalnızca tek başına return; varsa), TypeScript otomatik olarak void çıkarır. Amacı belirtsin diye açıkça yazabilseniz de buna nadiren ihtiyaç duyarsınız.

function greet(name: string) {
  console.log('Hi ' + name);
  // no return -> inferred void
}
greet('Ada');

`void` ve `undefined` Karşılaştırması

İlişkilidirler ancak aynı değildirler. void türündeki bir işlev gerçekte undefined döndürebilir veya döndürmeyebilir; dönüş değerine güvenmemeniz gerekir. undefined döndürecek şekilde türlendirilmiş bir işlev bunu açıkça döndürmelidir.

function a(): void { /* returns nothing useful */ }
function b(): undefined { return undefined; }
console.log(a(), b());

`void` Sonucunu Kullanmamalısınız

Bir void çağrısının çalışma zamanındaki değeri undefined olur; ancak tür sistemi bunu kullanmanızı teşvik etmez. void türünü, bu dönüşü yok sayın şeklinde değerlendirin.

function save(): void {
  console.log('saved');
}
const result = save(); // result has type void
console.log(result); // undefined at runtime

Geri Çağırma İşlevi Türlerinde `void`

İnce ama güçlü bir kural vardır: dönüş türü void olan bir geri çağırma işlevi, herhangi bir değer döndüren bir işlevle karşılanabilir. Fazladan dönüş değeri yok sayılır.

type Handler = () => void;

const h: Handler = () => 42; // returns number, still fine
h();
console.log('Returned value is ignored by callers');

Bu Kural Neden Var

Bu esneklik, sayı döndüren arr.push gibi işlevleri void geri çağırma işlevleri olarak geçirmenizi sağlar. Çağıran taraf dönüş değerini kullanmayacağını taahhüt ettiğinden, herhangi bir dönüş zararsızdır.

const items: number[] = [];
const nums = [1, 2, 3];
nums.forEach((n) => items.push(n)); // push returns number, ok
console.log(items);

Dizi Yöntemlerinde Bağlamsal `void`

forEach, void döndüren bir geri çağırma işlevi bekler. Bu nedenle, hata almadan, tek satırlık bir ok işleviyle farkında olmadan bir değer döndürebilirsiniz; bağlamsal void türü bu değeri yok sayar.

const result: string[] = [];
['a', 'b'].forEach((x) => result.push(x.toUpperCase()));
console.log(result);

Yaygın Bir Karışıklık

void geri çağırma işlevi kuralı, işlevin kendi açıklamalı dönüş türü void olan işlevler için değil, geri çağırma işlevinin türü için geçerlidir. Kelimenin tam anlamıyla (): void olarak bildirilen bir işlev, yine de return value; ile undefined olmayan bir değer döndüremez.

function f(): void {
  return; // ok
  // return 5; // Error: 5 not assignable to void
}
f();
console.log('declared void cannot return a value');

`void` Parametreleri Alışılmadıktır

Nadiren kullanılsa da void, gelişmiş genel türlerde parametre türü olarak görünebilir. Günlük kodda bunu neredeyse her zaman bir dönüş türü olarak görürsünüz; bu, anlamlı bir sonuç olmadığını belirtir.

type Listener = (event: string) => void;

const onClick: Listener = (e) => console.log('Event:', e);
onClick('click');

Promise'lerle `void`

Asenkron işlevler, iş yaptıkları ancak hiçbir değer döndürmeden tamamlandıkları zaman genellikle Promise<void> döndürür. Bu kalıp, asenkron kod için eş zamanlı void kullanımını yansıtır.

async function sync(): Promise<void> {
  console.log('syncing...');
  // resolves with no value
}
sync().then(() => console.log('done'));

`void` Türünü Bilinçli Seçmek

Bir işlevin yan etkileri için var olduğunu ve çağıranların bir dönüş değerine bağlı kalmaması gerektiğini belirtmek istediğinizde void açıklaması ekleyin. Bu, amacı netleştirir ve esnek geri çağırma işlevi kuralından yararlanmanızı sağlar.

function notify(msg: string): void {
  console.log('NOTIFY:', msg);
}
const handlers: Array<(m: string) => void> = [notify];
handlers.forEach((fn) => fn('ping'));

Hızlı Denetim

void türünü anlayıp anlamadığınızı sınayın.

Tekrar: `void`

void türünün:

  • kullanışlı bir değer döndürmeyen işlevleri belirttiğini,
  • undefined türünden farklı olduğunu; void sonuçlarının kullanılmaması gerektiğini,
  • bir geri çağırma işlevi türü olarak herhangi bir değer döndüren işlevleri kabul ettiğini (çağıranların bu değeri yok saydığını),
  • forEach içinde push gibi yöntemlerin temiz biçimde kullanılmasını sağladığını öğrendiniz.

Sırada her şeyi bir araya getirerek unknown türünü güvenli biçimde ele alacağız.

const tasks: Array<() => void> = [
  () => console.log('task 1'),
  () => console.log('task 2')
];
tasks.forEach((t) => t());

Sıkça Sorulan Sorular

“İşlevlerde void Türü” dersi ücretsiz mi?

Evet — “İşlevlerde void Türü” 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 4 dersten oluşur.

“İşlevlerde void Türü” dersinde ne öğreneceğim?

İşlevlerin dönüş konumlarında void türünün undefined türünden farkını öğrenin. 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, 4 dersinin 3. dersidir.

“İşlevlerde void Türü” 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. unknown ve any'yi Anlama
  2. never Türü ve İmkânsız Durumlar
  3. İşlevlerde void Türü
  4. unknown Türünü Tür Güvenli Şekilde Ele Alma
← TypeScript Academy Sayfasına Dön