typescript - Null veya undefined olabilen özellik "var olmadığı" hatasına neden oluyor


Döndürülen bir nesneyi doğru şekilde nasıl parçalayacağımı anlamaya çalışıyorum.

İşte TypeScript kodu:

const id = 1;
const { film: { title, director } } = await getEvent({ id });

title ve director altında bir hata alıyorum: Özellik film türünde mevcut değil. film üzerine geldiğimde, türünü gösteriyor:

(property) film?: {
    title?: string | null | undefined;
    director?: string | null | undefined;
    ... and 10 more ...;
} | undefined

Bu özelliklerin var olduğunu derleyiciye, title ve director türlerini undefined/null/opsiyonel olmaktan değiştirmeden nasıl söyleyebilirim?

Cevap #1

Varsayılan değerler sağlayarak TypeScript derleyicisini mutlu edebilirsiniz:

const { film: { title = '', director = '' } = {} } = await getEvent({ id });

Cevap #2

const film: { 
              title: string | null | undefined,
              director: string | null | undefined 
             } = await getEvent({ id });

Değişkeniniz bildirildiğinde, bir isim (film) olmalıdır ve ardından değişkenin türü : ile gelir

İlgili makaleler