Typescript'te dönüş değerini önlemek için nasıl yazılır


Typescript'te bir kullanıcının bir fonksiyondan herhangi bir şey döndürmesini nasıl önlerim?

Bu örnekte görebileceğiniz gibi, bu türlerin hiçbiri yeterli olmayacaktır:

type VoidReturner = () => void;
type UndefReturner = () => undefined;
type NeverReturner = () => never;
  • void yalnızca kullanıcıya dönüş değerinin önemli olmadığını söyler (tipi görmezden gelerek mi?)
  • undefined, geliştiricinin açıkça undefined döndürmesini gerektirir
  • never bir tahmin değildi ve void (örnek 1’de {} döndürmesi gibi) buna uymuyor.

Cevap #1

Sen() => void | undefined istiyorsun

Ne yazık ki, önce başka bir türe atayarak anonim olmayan fonksiyonlarla hile yapmak mümkün ama aksi takdirde kullanıcı bir değer döndürdüğünde (örtük veya açık bir şekilde) çalışır

Cevap #2

Typescript, hangi türü döndürebileceğinizi sınırlamanıza yardımcı olabilir. Döndürebileceğiniz belirli şeyler şunlardır:

void:

  1. hiçbir şey (dönüş ifadesi yok)
  2. tanımsız (sadece return; çağırmanın undefined döndürdüğünü unutmayın)
  3. null (--strictNullChecks devre dışıysa)

tanımsız:

Sadece undefined döndürebilirsiniz! Yine, sadece return; yazmak undefined döndürmek anlamına gelir.

Bu aynı zamanda tüm kod yollarının bir return ifadesine sahip OLMASI GEREKTİĞİ anlamına gelir. Bir kod yolunun olmaması mümkün değildir.

asla:

never biraz özel. Eğer bir fonksiyonun dönüş tipi never ise, asla geri dönmemelidir. Bu, fonksiyondaki her kod yolunun ya:

  1. hata verir
  2. veya sonsuz bir döngüye sahiptir.

Fonksiyonun erken sonlandırılmasını yasaklamak istediğini hissediyorum, ama bu mümkün değil.

İlgili makaleler