typescript - Egenskap som kan vara null eller undefined vilket orsakar felet "existerar inte"
Jag försöker lista ut det korrekta sättet att destrukturera ett returnerat objekt.
Här är TypeScript-koden:
const id = 1;
const { film: { title, director } } = await getEvent({ id });
Jag får ett fel under både title och director: Property does not exist on type film. När jag hovrar över film visas typen:
(property) film?: {
title?: string | null | undefined;
director?: string | null | undefined;
... and 10 more ...;
} | undefined
Hur kan jag tala om för kompilatorn att dessa egenskaper faktiskt finns utan att ändra typen på title och director för att inte vara undefined/null/valfri?
Svar #1
Du kan göra TypeScript-kompilatorn nöjd genom att ange standardvärden:
const { film: { title = '', director = '' } = {} } = await getEvent({ id });
Svar #2
const film: {
title: string | null | undefined,
director: string | null | undefined
} = await getEvent({ id });
Din variabel när den deklareras bör ha ett namn (film) och sedan följer typen av variabeln efter :
