javascript - Türü çıkarılan değişken tipini yazdırarak TypeScript'i nasıl hata ayıklayabilirim?


Çoğu zaman TS benim için başarısız oluyor çünkü çıkardığı tür, beklediğim türden farklı. Değişkenlere zorla tür dönüştürmesi yapabilirim, ama TS'nin türleri neden doğru bir şekilde çıkarmadığını anlamayı tercih ederim.

TS'nin bir değişkenin hangi tipte olduğunu düşündüğünü yazdırmanın bir yolu var mı?

Örneğin:

const obj = [
  { a: 'foo' },
  { b: 'bar' },
];

printTsType(obj[0].a);

Bunun kelimenin tam anlamıyla 'foo' olmasını beklerdim, ama sanırım TS sadece string olarak çıkarım yapıyor.

Cevap #1

Bir değişkenin türetilmiş tipini öğrenmenin bir yolu, o değişkeni farklı bir tip bekleyen bir fonksiyona (ör. never) geçirmektir; bu, derleyici hatası oluşturur ve size "türetilmiş tip never'a atanamaz" mesajını verir. TS Playground örneği: burada

İlgili makaleler