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;
voidyalnızca kullanıcıya dönüş değerinin önemli olmadığını söyler (tipi görmezden gelerek mi?)undefined, geliştiricinin açıkçaundefineddöndürmesini gerektirirneverbir tahmin değildi vevoid(ö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:
- hiçbir şey (dönüş ifadesi yok)
- tanımsız (sadece
return;çağırmanınundefineddöndürdüğünü unutmayın) - 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:
- hata verir
- veya sonsuz bir döngüye sahiptir.
Fonksiyonun erken sonlandırılmasını yasaklamak istediğini hissediyorum, ama bu mümkün değil.