Apollo graphql интерфейс typedef - PullRequest
1 голос
/ 05 ноября 2019

У меня есть ссылка интерфейса apollo:

interface PageLayout {
        _id: String!
        id: ID! @globalID
        title: String
        subtitle: String
        template: String! @default(value:"none")
        layout: String
        layoutMobile: String
        showCount: Float
        showCountMobile: Float
        imageHeight: Int
        cardDesign: String
        cardShadow: Int
    }

и этот тип, который реализует интерфейс:

type PageLayoutBannerRow implements PageLayout {
        _id: String!
        id: ID! @globalID
        title: String
        subtitle: String
        template: String! @default(value:"none")
        layout: String
        layoutMobile: String
        showCount: Float
        showCountMobile: Float
        imageHeight: Int
        cardDesign: String
        cardShadow: Int

        banners: [PageLayoutBanner]! @default(value:[])
    }

для каждого типа, я должен скопировать все свойства интерфейса в свой тип.

Есть ли какое-нибудь решение, чтобы написать мои типы, как это?

type PageLayoutBannerRow implements PageLayout {
        # not copy interface attributes

        banners: [PageLayoutBanner]! @default(value:[])
    }

1 Ответ

0 голосов
/ 05 ноября 2019

К сожалению, нет никакого способа обойти это. Для получения более подробной информации см. Документацию https://graphql.org/learn/schema/#interfaces

В зависимости от того, чего вы хотите достичь, вы можете взглянуть на союзы https://graphql.org/learn/schema/#union-types (но из вашего примера похоже, что вы должны использовать интерфейсточно).

...