Typescript: Åtkomst till egenskapsvärde från typ-/gränssnittsdeklaration


Jag har en följande typ

export type OfferTypes = {
__typename: 'OfferTypeTypePagination';

items: any[];

total: number;
};

finns det ett sätt att få tillgång till OfferTypeTypePagination som en sträng från koden (t.ex. console.log(OfferTypes.__typename)) ?

Svar #1

När du exporterar en typ är 'OfferTypeTypePagination' inte ett värde eller standardvärde för __typename, det är i princip en annan typ.

Det betyder att varje variabel som är OfferTypes kommer att ha en egenskap som heter "__typename" och endast ha ett värde, som alltid är 'OfferTypeTypePagination'

Så din kod bör vara så här:

const key = {
    'OfferTypeTypePagination': null,
};

export type OfferTypes = {
    __typename: keyof typeof key;

    items: any[];

    total: number;
};

console.log(Object.keys(key)[0]);