'How get to a child of an optional field

I have this type:

export type GetWeeklyArticleQuery = {
    __typename?: 'Query';
    weeklyArticle?: {
        __typename?: 'WeeklyArticle';
        date: any;
        tags: Array<string>;
        title: string;
        authors: Array<{ __typename?: 'Author'; name: string; slug: string }>;
        bodyContent: { __typename?: 'RichText'; html: string };
        coverImage: {
            __typename?: 'Asset';
            url: string;
            title?: string | null;
            altText?: string | null;
            description?: { __typename?: 'RichText'; html: string } | null;
            caption?: { __typename?: 'RichText'; html: string } | null;
        };
        introLine: { __typename?: 'RichText'; html: string };
        footnote: Array<{ __typename?: 'RichText'; html: string }>;
    } | null;
};

In my code, I need to get the authors field but I don't know how to type and manage it without create a custom type like Array<{ __typename?}. In my code I tried:

let authors:weeklyArticleDto['authors'];

This gives me an error in my VS and in ts playground:

type weeklyArticleDto = GetWeeklyArticleQuery['weeklyArticle'];
const weeklyArticle: weeklyArticleDto = data.weeklyArticle;
let authors:weeklyArticleDto['authors'];
if (weeklyArticle) {
    authors  = weeklyArticle.authors;
}

How can fix it?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source